如何控制通用WCF返回类型的名称?

时间:2008-10-05 16:50:58

标签: wcf web-services generics

我有一个WCF Web服务方法,其原型是:

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

当我将服务引用添加到客户端时,Visual Studio(2005)创建了一个名为“ResponseOfArrayOfCustomerrleXg3IC”的类型,它是“Response&lt; List&lt; Customer&gt;&gt;”的包装器。有什么方法可以控制包装器名称吗? ResponseOfArrayOfCustomerrleXg3IC听起来不太吸引人......

3 个答案:

答案 0 :(得分:18)

您可以在DataContract属性中定义自己的名称,如下所示:

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

请注意,在您的示例中,{0}将被替换,您的代理引用类型将为ResponseOfArrayOfCustomer

此处有更多信息:WCF: Serialization and Generics

答案 1 :(得分:3)

请试试这个:

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

答案 2 :(得分:-1)

是。 OperationContractAttribute采用名为Name的参数。您可以这样指定:

[OperationContract(Name = "NameGoesHere")]
Response<List<Customer>> GetCustomers();
相关问题