【问题标题】:Does the message contract provide interoperability across different languages?消息合约是否提供跨不同语言的互操作性?
【发布时间】:2011-11-27 12:17:05
【问题描述】:

我正在阅读有关 WCF 服务的信息。我是 WCF 服务的新手。我读到 WCF 提供了互操作性。我想知道它在哪种情况下提供互操作性。它是否在使用任何其他语言(例如 php)或任何不同目的的 .net wcf Web 服务的上下文中提供互操作性。我已阅读以下文章。

http://blogs.msdn.com/b/drnick/archive/2006/11/27/mixing-message-contract-attributes.aspx

以这种方式,如果我们通过传递或返回某些方法的 MessageContract 和某些方法的 DataContract 来为 wcf Web 服务中的所有方法提供 OperationContract,那么在 php 或任何其他语言中会发生什么? *以 DataContract 作为参数或返回类型的方法是否在 php 或任何其他语言中可用?或者以 MessageContract 作为参数或返回类型的方法是否在 php 或任何其他语言中可用?或者两者都可以在 php 或任何其他语言中使用 *

【问题讨论】:

    标签: php wcf interop datacontract messagecontract


    【解决方案1】:

    它是否在使用任何其他语言(例如 php)或任何不同目的的 .net wcf Web 服务的上下文中提供互操作性。

    互操作性意味着能够从非 .NET 平台调用您的 WCF 服务,只要客户端使用与您的服务相同的 Web 服务协议。请注意,您可以为 WCF 服务使用多种类型的绑定,但只有 BasicHttpBinding、WSHttpBinding 和 WSDualHttpBinding 支持互操作性。有关详细信息,请参阅 MSDN 文章Web Services Protocols Supported by System-Provided Interoperability Bindings

    以 DataContract 作为参数或返回类型的方法是否在 php 或任何其他语言中可用?或者以 MessageContract 作为参数或返回类型的方法是否在 php 或任何其他语言中可用?或者两者都可以在 php 或任何其他语言中使用

    简短的回答是肯定的。例如,如果您使用 BasicHttpBinding,它就会全部变为 XML,这取决于该语言可用的库将 XML 转换为该语言的原生内容。例如,PHP SoapClient 将 DataContract 返回类型转换为内置的 stdClass 对象(请参阅Echo xml result from wcf service in php?)。

    【讨论】:

      【解决方案2】:

      根据https://github.com/geersch/WcfServicesWithPhp5,至少 messagecontract 应该提供一个使用 PHP 的可行解决方案。

      我可以在 http://www.rizalalmashoor.com/blog/calling-a-wcf-service-from-php/ 找到类似的 DataContracts 帖子。

      比较这两种合同类型从 PHP 中使用的方式,我认为将两者结合在同一个 WCF 服务中不会有问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多