0

我正在使用这个 wsdl 来生成类。

https://pal-live.adyen.com/pal/Payment.wsdl

当我将它添加为“网络参考”时,它会创建一个 Payment 类,其中包含付款所需的方法。

将其添加为“服务引用”时,它仅创建具有这些方法的接口,但没有 Payment 类。

还有其他类,但缺少关键的 Payment 类,其方法仅在接口中。

wsdl 如何生成不同的类?这里的主要区别是什么,我怎样才能得到这个支付类?

还可能值得注意的是,我无法使用 Web 参考的原因是因为此代码正在部署到 azure 网站,如果我推送 Web 参考生成的代码,我会收到 sdk 版本错误。大概是因为.net版本。

谢谢

4

1 回答 1

1

我使用 svcutil 根据您的 wsdl 生成类。

它创建了界面PaymentPortType。这定义了如何与您的服务通信的合同。但是,这并不知道服务位于何处。

它还创建了类PaymentPortTypeClient。这个类继承自ClientBase<PaymentPortType>. 通过为 PaymentPortTypeClient 提供 Binding 和 EndpointAddress,您现在拥有与服务通信所需的一切。

注意:这可以来自配置文件,此时您将使用构造函数

public PaymentPortTypeClient(string endpointConfigurationName)

ClientBase 有一个私有的 ChannelFactory。ChannelFactory.CreateChannel() 将创建一个实现 PaymentPortType 并可以与您的服务对话的对象。这是自动完成的并存储在 ClientBase.Channel 中。

最后,PaymentPortTypeClient还实现了 PaymentPortType。接口中的每个方法都实现为在通道上调用该方法。

于 2012-08-17T17:12:02.857 回答