如果我正在处理特定年份(2016 年)的记录,我遇到了在序列化元素时需要从元素中排除前缀的情况。但是,如果我正在处理上一年(2015 年)的记录,则应包含此前缀。
例子:
2015 IRS 架构将CountryNm
和ForeignProvinceNm
字段定义为元素irs:CountryNm
的irs:ForeignProvinceNm
子ForeignAddressGrpType
元素。
我在一个类中定义了以下内容Address
。当我序列化这些属性时,我得到irs:CountryNm
了irs:ForeignProvinceNm
预期的结果。
// IRS_Namespace.commonNamespace uses the prefix 'irs'.
[XmlElement(Namespace = IRS_Namespace.commonNamespace)]
public string CountryNm
{
get { return _CountryName; }
set { _CountryName = value.Trim(); }
}
[XmlElement(Namespace = IRS_Namespace.commonNamespace)]
public string ForeignProvinceNm
{
get { return _ForeignProvinceName; }
set { _ForeignProvinceName = value.Trim(); }
}
如果我正确解释了 2016 纳税年度的更改文档,则 IRS 更新了他们的架构定义并从这两个字段中删除了前缀。
问题:
在处理 TY2016 数据与 TY2015 数据时,如何有条件地从这些字段中删除前缀?
IRS 已指示发送任何 TY2015 数据的州必须使用 2015 模式,而为 TY2016 发送的新记录必须使用 2016 模式。
我需要维护两个(或更多,随着时间的推移)版本的Address
课程吗?