2008-10-05 6 views
7

J'ai une méthode de service Web WCF dont le prototype est:Comment puis-je contrôler le nom des types de retour WCF génériques?

[OperationContract] 
Response<List<Customer>> GetCustomers(); 

Quand j'ajoute la référence de service à un client, Visual Studio (2005) crée un type appelé "ResponseOfArrayOfCustomerrleXg3IC" qui est un wrapper pour " Réponse < Liste < Client >> ". Est-il possible de contrôler le nom du wrapper? ResponseOfArrayOfCustomerrleXg3IC ne semble pas très attrayant ...

Répondre

17

Vous pouvez définir votre propre nom dans l'attribut DataContract comme ceci:

[DataContract(Name = "ResponseOf{0}")] 
public class Response<T> 

Notez que dans votre exemple le {0} sera remplacé et votre type de référence de proxy sera ResponseOfArrayOfCustomer.

Plus d'infos ici: WCF: Serialization and Generics

0

Oui. Le OperationContractAttribute prend un paramètre appelé Name. Vous pouvez spécifier comme ceci:

[OperationContract(Name = "NameGoesHere")] 
Response<List<Customer>> GetCustomers(); 
+0

Je ne veux pas préciser le nom de l'opération, je veux préciser le nom du DataContract. Le problème est que le DataContract que j'utilise est générique. – ilitirit

3

S'il vous plaît essayez ceci:

[OperationContract] 
[return: MessageParameter(Name="YOURNAME")] 
Response<List<Customer>> GetCustomers(); 
+0

Cela ne marche pas non plus – ilitirit

Questions connexes