我知道,當你創建你可以創建一個通用的DataContract服務:是否可以從客戶端使用通用DataContract?
[DataContract(Name = "Get{0}Request")
public sealed class GetItemRequest<T>
where T : class, new() { ... }
[DataContract(Name = "Get{0}Response")
public sealed class GetItemResponse<T>
where T : class, new() { ... }
[ServiceContract]
public void MyService : IMyService
{
[OperationContract]
GetItemResponse<Foo> GetItem(GetItemRequest<Foo> request);
}
這生成WSDL我一個GetFooRequest
和GetFooResponse
定義。現在,我很好奇的是,如果有可能走向另一個方向?
是否有可能創建一個使用通用DataContracts並通過這些服務器作爲一個具體的對象的客戶?我在添加Service Reference之後嘗試了這一點,但實際上效果並不好。所以這更多的是我想知道是否有任何方式(即使它不需要添加服務引用)來執行此操作?
我承認,這個功能(如描述在這裏MSDN(http://msdn.microsoft.com/en-us/library/ms731045.aspx))是*不*一個我以前見過。有趣。 –
@Marc:是的,但它只是一半有用。負責「ServiceContract」和「OperationContract」類的另一個團隊在生成Name值時鬆開關閉,並且不對DataContract執行的泛型進行很好的檢查,因此爲什麼不能創建具體定義的泛型操作/服務合同!也許C#5? :) –