4
以下XML序列化输出后我:自定义XML序列化 - 包括类名
<?xml version="1.0"?>
<Message>
<Version>1.0</Version>
<Body>
<ExampleObject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<EmampleOne>Hello!</EmampleOne>
</ExampleObject>
</Body>
</Message>
我有以下类别:
[Serializable]
public class Message<T>
{
public string Version { get; set; }
public T Body { get; set; }
}
[Serializable]
public class ExampleObject
{
public string EmampleOne { get; set; }
}
如果我序列分开他们,我得到:
<?xml version="1.0"?>
<Message>
<Version>1.0</Version>
<Body>
<EmampleOne>Hello!</EmampleOne>
</Body>
</Message>
And:
<?xml version="1.0"?>
<ExampleObject>
<EmampleOne>Hello!</EmampleOne>
</ExampleObject>
因此,如上所示,我想要内部身体包含类名<ExampleObject>
。
我使用仿制药,我需要有不同的邮件正文的,序列化的代码:
var obj = new Message<ExampleObject>
{
Version = "1.0",
Body = example
};
var serializer2 = new XmlSerializer(typeof (Message<ExampleObject>));
要这样做没有实现IXmlSerializable将需要更改对象模型,并使用XmlAttributeOverrides - 可以做到但不是微不足道的。我目前不在PC上,但稍后可能会看。我想知道是否直接编写DOM会更容易... – 2012-01-13 17:38:23
仅供参考,XML序列化程序不使用“[Serializable]”。 – 2012-01-13 20:32:22