我知道,当你创建你可以创建一个通用的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? :) –