我有一个对象,我序列化为XML.如果对象中的某个属性为null,则本机序列化将忽略将其添加为属性.这是正常行为,如果是这样,有没有办法可以覆盖它?
例如:
public class Test
{
[XmlAttribute]
public string value {set; get; }
[XmlAttribute]
public string key {set; get; }
}
Run Code Online (Sandbox Code Playgroud)
当值为null时,我得到
<Root>
<Test key="blah">
</Root>
Run Code Online (Sandbox Code Playgroud) 目前,以下代码在序列化期间省略了null属性.我希望输出xml中的null值属性为空元素.我在网上搜索但没有找到任何有用的东西.任何帮助,将不胜感激.
var serializer = new XmlSerializer(application.GetType());
var ms = new MemoryStream();
var writer = new StreamWriter(ms);
serializer.Serialize(writer, application);
return ms;
Run Code Online (Sandbox Code Playgroud)
对不起,我忘了提到我想避免属性修饰.
我正在使用XmlSerializer.它将对象序列化很好,但客户端要求所需的空元素采用这种格式<star:Confirm/>
.序列化器将序列化空元素,以便<star:Confirm></star:Confirm>
有一种方法可以将其更改为序列化客户端所需的方式.