【发布时间】:2013-06-06 19:55:56
【问题描述】:
我最近在 StackOverflow 上发布了一个问题:
SOAP message deserialization issue in WCF - fields have null values
这与 WCF 序列化引擎之一有关,XmlSerializer,用于序列化/反序列化 SOAP 消息。反序列化起初不起作用 - 一些命名空间问题。
回到现在:)
如果用[XmlElement, MessageBodyMember] 修饰的字段是简单类型,现在可以很好地反序列化。
自定义类型有一个问题:它们已设置,但它们的字段有空值:(
我应该对 XmlSerializer 进行配置吗?
[MessageContract]
public class Request
{
[XmlElement(Form = System.Xml.Schema.XmlSchemaForm.Unqualified), MessageBodyMember]
public XType X { get; set; }
}
[what to write here?]
public class XType
{
[XmlElement(Form = System.Xml.Schema.XmlSchemaForm.Unqualified), body member?]
public string AString { get; set; }
... maybe another nested complex objects
}
【问题讨论】:
-
为什么要使用 XmlSerializer?你必须使用它吗?它已经过时了。
-
XmlSerializer 它在命名空间范围等方面比 DataContractSerializer 更可配置(据我所知) - 例如,我需要“XmlSchemaForm = Unqualified”设置。