C# 在什么情况下,svcutil.exe决定在生成的代理代码中应用XmlSerializerFormatAttribute?

C# 在什么情况下,svcutil.exe决定在生成的代理代码中应用XmlSerializerFormatAttribute?,c#,wcf,xml-serialization,svcutil.exe,C#,Wcf,Xml Serialization,Svcutil.exe,如标题所示,svcutil.exe决定在生成的代理代码中应用XmlSerializerFormatAttribute?我找不到任何关于这方面的文档,因此我非常感谢链接一些源。XmlSerializerFormat用于支持与ASMX(经典web服务)的向后兼容性 默认情况下,代理将使用DataContractSerializer。如果WSDL文档中的模式元素使用了DataContractSerializer无法处理的XSD模式特性,它将选择XmlSerializer 对于一些深入的示例,我可以推

如标题所示,svcutil.exe决定在生成的代理代码中应用
XmlSerializerFormatAttribute
?我找不到任何关于这方面的文档,因此我非常感谢链接一些源。

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

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



对于一些深入的示例,我可以推荐Michele Leroux Bustamante的“”。

只要web服务的架构与DataContractSerializer不兼容,就会选择XmlSerializer(并应用XmlSerializerFormatAttribute)。正如用户“Aphelion”在他们的回答中指出的,这种情况可能发生的一种情况是在使用一些遗留的ASMX web服务时。然而,在与非.NET服务(例如,基于Java的服务)进行互操作时,这种情况也很常见。这里的最终文档实际上是,它确切地告诉您模式中支持什么和不支持什么。

谢谢您的回答。例如,我在这里发现DataContractSerializer无法处理属性