我发现如果一个可序列化的领域/财产有一个对应的类型字段Boolean名字为领域/财产带有“指定”后缀的名称,XmlSerializer 有条件地排除该名称领域/财产从序列化过程来看。好的!
所以,我想避免这些字段的定义,并在运行时动态添加它们......
Reading this,我发现了一个有趣的界面IReflect,我可以使用它来“模拟”XmlSerializer 实例使用的动态字段来排除某些字段。
这行得通吗?
我将延长答案马丁·派克。
您可以避免使用“指定”后缀对字段/属性进行序列化。
您应该在类中定义“*Specified”属性并应用[XmlIgnoreAttribute()]
给他们。
这是一个例子:
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://yournamespace.com")]
public partial class YourObject
{
private long sessionTimeoutInSecondsField;
private bool sessionTimeoutInSecondsFieldSpecified;
public long sessionTimeoutInSeconds
{
get
{
return this.sessionTimeoutInSecondsField;
}
set
{
this.sessionTimeoutInSecondsField = value;
}
}
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool sessionTimeoutInSecondsSpecified
{
get
{
return this.sessionTimeoutInSecondsFieldSpecified;
}
set
{
this.sessionTimeoutInSecondsFieldSpecified = value;
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)