Как я могу контролировать имя универсальных возвращаемых типов WCF? - PullRequest
8 голосов
/ 05 октября 2008

У меня есть метод веб-службы WCF, прототип которого:

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

Когда я добавляю ссылку на службу клиенту, Visual Studio (2005) создает тип с именем «ResponseOfArrayOfCustomerrleXg3IC», который является оболочкой для «Response >». Есть ли способ, которым я могу контролировать имя оболочки? ResponseOfArrayOfCustomerrleXg3IC звучит не очень привлекательно ...

Ответы [ 3 ]

18 голосов
/ 06 октября 2008

Вы можете определить свое собственное имя в атрибуте DataContract следующим образом:

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

Обратите внимание, что в вашем примере {0} будет заменено, а тип ссылки на прокси будет ResponseOfArrayOfCustomer.

Подробнее здесь: WCF: Сериализация и Обобщения

3 голосов
/ 05 октября 2008

Пожалуйста, попробуйте это:

[OperationContract]
[return: MessageParameter(Name="YOURNAME")]
Response<List<Customer>> GetCustomers();
0 голосов
/ 05 октября 2008

Да. Атрибут OperationContractAttribute принимает параметр с именем Name. Вы можете указать это так:

[OperationContract(Name = "NameGoesHere")]
Response<List<Customer>> GetCustomers();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...