因此,您不应该或不能在您正在公开的方法中使用接口,或者在WCF服务中向客户端公开的DTO中使用接口?因为如果我有这个例子:
public class MyCustomDTO
{
public ITransaction Transaction { get; set; }
}
或
IPaymentRequest SendTransaction(PreAuthorizeRequest request);
我注意到当我尝试创建集成测试以证明可以使用wsdl并成功调用时,我的ITransaction和IPaymentRequest被序列化并通过服务客户端作为“对象”公开,可能是因为它不知道是什么在合同中公开的那种对象吧?
因此,您不能创建带有接口的方法或DTO作为您正在向使用WCF服务的外部世界公开的合同的一部分吗?
答案 0 :(得分:0)
如果您使用WCF连接两个.NET实例,并且您将合同作为两者之间的通用合同程序集共享,而不是使用wsdl中的自动生成的客户端,那么它可以正常工作。但是,WCF是关于互操作性的,您可能希望在未来添加非.NET客户端,因此您应该只使用实际类型,以便您的服务能够与其他所有语言一起使用。