指定在进行XML序列化时要包含的属性
本文关键字:包含 属性 序列化 XML | 更新日期: 2023-09-27 18:18:20
我有以下Utility方法来帮助将对象序列化为XML:
public static string Serialize(object input) {
if (input != null) {
using (var sw = new StringWriter()) {
var serializer = new System.Xml.Serialization.XmlSerializer(_type);
serializer.Serialize(sw, input);
return sw.ToString();
}
} else
return null;
}
这适用于基本类型。但如果我的类型有一个接口属性,那它就不能工作了。我的类型是否有可能实现一个接口,该接口只指定我希望在序列化时包含的类型的属性?
我很感激你的帮助,因为我不太清楚如何去做这件事,但似乎是可能的。由于如果用XmlIgnore属性作为类成员的前缀,那么XmlSerializer将不会对其进行序列化/反序列化。例如:
// Super secret text here, must not be serialised
[XmlIgnore()]
public String SecurityCode = null;
看看使用属性控制XML序列化
属性可用于控制对象的XML序列化或者从同一组类中创建另一个XML流。
使用XmlIgnoreAttribute阻止序列化
在某些情况下,可能不需要公共属性或字段序列化的。例如,可以使用字段或属性来包含元数据。在这种情况下,将XmlIgnoreAttribute应用于字段或属性,XmlSerializer将跳过它。
XmlIgnoreAttribute类
指示XmlSerializer的Serialize方法不进行序列化公共字段或公共读/写属性值。
例如
public class Group
{
// The XmlSerializer ignores this field.
[XmlIgnore]
public string Comment;
// The XmlSerializer serializes this field.
public string GroupName;
}