C# 服务引用为web引用生成不同的类
我正在使用这个wsdl生成类 当我将其添加为“web引用”时,它会创建一个Payment类,其中包含支付所需的方法 当将其添加为“服务引用”时,它仅创建具有这些方法的接口,而不创建付款类 还有其他类,但缺少关键的Payment类,其方法仅在接口中 wsdl如何生成不同的类?这里的主要区别是什么?我如何才能获得这种付款类别 可能还值得注意的是,我无法使用web引用的原因是,此代码正在部署到azure网站,如果推送web引用生成的代码,我会收到sdk版本错误。大概是因为.net版本C# 服务引用为web引用生成不同的类,c#,azure,wsdl,C#,Azure,Wsdl,我正在使用这个wsdl生成类 当我将其添加为“web引用”时,它会创建一个Payment类,其中包含支付所需的方法 当将其添加为“服务引用”时,它仅创建具有这些方法的接口,而不创建付款类 还有其他类,但缺少关键的Payment类,其方法仅在接口中 wsdl如何生成不同的类?这里的主要区别是什么?我如何才能获得这种付款类别 可能还值得注意的是,我无法使用web引用的原因是,此代码正在部署到azure网站,如果推送web引用生成的代码,我会收到sdk版本错误。大概是因为.net版本 谢谢我使用sv
谢谢我使用svcutil根据您的wsdl生成类 它创建了接口
PaymentPortType
。这定义了如何与服务通信的契约。但是,这不知道服务位于何处
它还创建了类PaymentPortTypeClient
。此类继承自ClientBase
。通过给PaymentPortTypeClient一个绑定和端点地址,您现在就拥有了与服务对话所需的一切
注意:这可以来自配置文件,此时您将使用构造函数
public PaymentPortTypeClient(string endpointConfigurationName)
ClientBase有一个私有的ChannelFactory。CreateChannel()将创建一个实现PaymentPortType并可以与您的服务对话的对象。这将自动完成并存储在ClientBase.Channel中
最后,
PaymentPortTypeClient
还实现了PaymentPortType。接口中的每个方法都被实现为在通道上调用该方法。是否有PaymentClient
类或从ClientBase
继承的任何类?作为一个侧节点,WCF客户端使用的是接口而不是具体的实现。然后,该接口与ChannelFactory
或ClientBase
一起使用,后者只是ChannelFactory
的包装器。拥有这个接口通常就足够了。