Passer une classe en paramètre dans le service RESTful WCF
Dans mon Reposant WCF Prolongée j'ai besoin de passer d'une classe en tant que paramètre pour URITemplate.
J'ai été en mesure de passer à une chaîne ou plusieurs chaînes de caractères en tant que paramètres.
Mais j'ai beaucoup de champs sont là pour passer de Service WCF.
J'ai donc créé une classe et ajouté tous les champs en tant que propriétés, puis
Je veux passer cette classe comme l'un des paramenter à la URITemplate.
Quand je suis en train de passer de la classe à la URITemplate j'obtiens l'erreur
"Chemin d'accès de segment doit être de type chaîne de caractères". Sa non-acceptation de la classe en tant que paramètre.
Une idée de comment passer de classe en tant que paramètre.
Voici mon code (inputData est classe)
[OperationContract]
[WebGet(UriTemplate = "/InsertData/{param1}")]
string saveData(inputData param1);
source d'informationauteur Henry
Vous devez vous connecter pour publier un commentaire.
Vous pouvez passer d'un type complexe (classe) dans une requête GET, mais vous avez besoin de "enseigner" WCF comment l'utiliser, via un QueryStringConverter. Cependant, vous ne devrait pas le faire, surtout dans une méthode qui permettra de changer quelque chose dans le service (GET devrait être pour les opérations en lecture seule).
Le code ci-dessous montre à la fois le passage d'un type complexe dans un GET (avec une coutume QueryStringConverter) et de la POSTE (la façon dont il est censé être fait).
Passage d'une classe (contrat de données) n'est possible qu'avec une requête POST ou PUT (
WebInvoke
). Demande d'OBTENIR autorise uniquement les types simples où chacun doit faire partie deUriTemplate
être mappés à des paramètre de la méthode.