我有一个WCF Web服务方法,其原型是:
[OperationContract]
Response<List<Customer>> GetCustomers();
当我将服务引用添加到客户端时,Visual Studio(2005)创建了一个名为“ResponseOfArrayOfCustomerrleXg3IC”的类型,它是“Response&lt; List&lt; Customer&gt;&gt;”的包装器。有什么方法可以控制包装器名称吗? ResponseOfArrayOfCustomerrleXg3IC听起来不太吸引人......
答案 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();