2008-10-05 52 views
7

我有一個WCF Web服務方法,其原型爲:如何控制泛型WCF返回類型的名稱?

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

當我添加服務引用到客戶端時,Visual Studio(2005)創建了一個名爲「ResponseOfArrayOfCustomerrleXg3IC」類型,它是一個包裝的「回覆<列表<客戶>>「。有什麼辦法可以控制包裝名稱嗎? ResponseOfArrayOfCustomerrleXg3IC聽起來不太有吸引力...

回答

17

您可以在DataContract屬性定義自己的名字是這樣的:

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

注意,在你的榜樣{0}將被替換,您的代理參考類型將爲ResponseOfArrayOfCustomer

此處瞭解詳情:WCF: Serialization and Generics

0

是的。 OperationContractAttribute接受一個名爲Name的參數。你可以像這樣指定它:

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

我不想指定操作的名稱,我想指定DataContract的名稱。問題是我使用的DataContract是通用的。 – ilitirit 2008-10-05 17:57:56

3

請試試這個:

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

這也行不通 – ilitirit 2008-10-05 18:37:55