在我的项目,我需要建立一个通用的解串器,应该是向后兼容的。 示例:XML是什么样子
<PolicyDef name = "sample" type="type1">
<Options ......>
</PolicyDef>
“类型”是枚举 - PolicyTypes如
public Enum PolicyTypes
{
type1 = 0,
type2 = 1
}
所述PolicyDef类被定义为
[XmlRoot("PolicyDef")]
public class PolicyDef
{
private string policyName;
private PolicyTypes policyType;
public PolicyDefinition()
{
}
[XmlAttribute]
public string Name
{
get
{
return this.policyName;
}
set
{
this.policyName = value;
}
}
[XmlAttribute]
public PolicyTypes Type
{
get
{
return this.policyType;
}
set
{
this.policyType = value;
}
}
}
这种方法的问题是,如果以后我把比1型或2型以外的任何类型,XMLDeserializer会抛出异常。 所以,如果我有像XML
<PolicyDef name = "sample" type="type_new">
<Options ......>
</PolicyDef>
解串器将抛出误差type_new无效。
我不知道是否有一种方法可以钩到解串器过程中赶上并设置默认值,而不是抛出错误。 说,如果有任何无效的值,那么我将其设置为“TYPE1”
或者愿意接受建议关于如何处理这个问题
谢谢并恭祝安康