0

如果我正在处理特定年份(2016 年)的记录,我遇到了在序列化元素时需要从元素中排除前缀的情况。但是,如果我正在处理上一年(2015 年)的记录,则应包含此前缀。

例子:

2015 IRS 架构将CountryNmForeignProvinceNm字段定义为元素irs:CountryNmirs:ForeignProvinceNmForeignAddressGrpType元素。

我在一个类中定义了以下内容Address。当我序列化这些属性时,我得到irs:CountryNmirs: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课程吗?

4

0 回答 0