2

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

4

2 回答 2

3

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

于 2013-01-14T14:16:27.727 回答
2

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

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


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

于 2013-01-14T11:43:15.290 回答