【问题标题】:In what case svcutil.exe decides to apply XmlSerializerFormatAttribute in generated proxy code?在什么情况下 svcutil.exe 决定在生成的代理代码中应用 XmlSerializerFormatAttribute?
【发布时间】:2013-01-14 10:54:34
【问题描述】:

如标题所示,在什么情况下 svcutil.exe 决定在生成的代理代码中应用 XmlSerializerFormatAttribute?我找不到任何关于此的文档,因此我将不胜感激链接一些来源。

【问题讨论】:

    标签: c# wcf xml-serialization svcutil.exe


    【解决方案1】:

    只要 Web 服务的架构与 DataContractSerializer 不兼容,就会选择 XmlSerializer(并应用 XmlSerializerFormatAttribute)。正如用户“Aphelion”在他们的回答中指出的那样,可能发生这种情况的一种情况是在使用一些遗留的 ASMX Web 服务时。但是,在与非 .NET 服务(例如,基于 Java)进行互操作时,这种情况也很常见。此处的最终文档实际上是 http://msdn.microsoft.com/en-us/library/ms733112.aspx ,它准确地告诉您架构中支持和不支持的内容。

    【讨论】:

      【解决方案2】:

      XmlSerializerFormat 用于支持与 ASMX(经典 Web 服务)的向后兼容性。

      默认情况下,代理将使用DataContractSerializer。如果 WSDL 文档中的架构元素使用了 DataContractSerializer 无法处理的 XSD 架构特性,它将选择 XmlSerializer


      我可以推荐 Michele Leroux Bustamante 的 'Learning WCF' 以获得一些深入的示例。

      【讨论】:

      猜你喜欢
      • 2013-08-21
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 2010-10-03
      • 2017-05-07
      相关资源
      最近更新 更多