Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF中的接口和集成测试_Wcf - Fatal编程技术网

WCF中的接口和集成测试

WCF中的接口和集成测试,wcf,Wcf,那么,在WCF服务中,您是否不应该或不能在向客户机公开的方法或DTO中使用接口?因为如果我举个例子: public class MyCustomDTO { public ITransaction Transaction { get; set; } } 或 我注意到,当我尝试创建集成测试以证明wsdl可以使用并进行成功调用时,我的ITransaction和IPaymentRequest被序列化并通过服务客户端作为“对象”公开,这可能是因为它不知道在契约中公开哪种对象,对吗 那么,您是否不

那么,在WCF服务中,您是否不应该或不能在向客户机公开的方法或DTO中使用接口?因为如果我举个例子:

public class MyCustomDTO
{
    public ITransaction Transaction { get; set; }
}

我注意到,当我尝试创建集成测试以证明wsdl可以使用并进行成功调用时,我的ITransaction和IPaymentRequest被序列化并通过服务客户端作为“对象”公开,这可能是因为它不知道在契约中公开哪种对象,对吗


那么,您是否不能创建包含接口的方法或DTO,将其作为使用WCF服务的外部世界公开的契约的一部分?

如果您使用WCF连接两个.NET实例,并且您将契约作为两个实例之间的公共契约程序集共享,而不是使用从wsdl,那么它就可以工作了。然而,WCF是关于互操作性的,您可能希望在将来添加一个非.NET客户端,因此您应该只使用实际类型,以便您的服务能够与所有其他语言很好地协同工作。

谢谢…..我没有看到yetI不理解您所说的共享合同作为通用合同而不是使用自动生成的客户端是什么意思wsdl如果将服务接口及其使用的所有DTO放在自己的程序集中,则可以在客户端中引用此程序集,并使用这些类与服务通信。从wsdl自动生成的客户机只是从wsdl生成的类的另一个副本。
IPaymentRequest SendTransaction(PreAuthorizeRequest request);