Xml序列化 - 渲染空元素

Jai*_*han 14 c# xml-serialization

我正在使用XmlSerializer并在类中具有以下属性

public string Data { get; set; }
Run Code Online (Sandbox Code Playgroud)

我需要输出完全如此

<Data />
Run Code Online (Sandbox Code Playgroud)

我将如何实现这一目标?

Fir*_*gon 18

我最近这样做,有另一种方法,这似乎有点简单.您只需要将属性的值初始化为空字符串,然后它将根据您的需要创建一个空标记;

Data = string.Empty;
Run Code Online (Sandbox Code Playgroud)


Jai*_*han 6

解决方案是创建一个PropertyNameSpecified属性,序列化程序使用该属性来确定是否序列化属性.例如:

public string Data { get; set; }

[XmlIgnore]
public bool DataSpecified 
{ 
   get { return !String.IsNullOrEmpty(Data); }
   set { return; } //The serializer requires a setter
}
Run Code Online (Sandbox Code Playgroud)