我有一个从电子表格动态创建的xml字符串。有两列经常被用户错误标记(是的,我们有一个模板,使用最多的时间)。我可以将两个XmlElement映射到相同的字符串吗?
我将该字符串序列化为自定义对象。
我想说明常见的错误。我试图用我的串行如下:
[XmlElement("MATTYPE")]
[XmlElement("MATLTYPE")]
public string MATLTYPE { get; set; }
[XmlElement("DEPTID")]
[XmlElement("WORKCENTER")]
public string WORKCENTER { get; set; }
理想的情况下,无论是<MATTYPE>
OR<MATLTYPE>
会映射到MATLTYPE
字符串。 同样的,<DEPTID>
OR<WORKCENTER>
映射到WORKCERNTER
两个元件将不在同一文件中存在,但任何可能。
这可以轻松完成吗?
UPDATE:
我已经试过这样:
[XmlElement("MATTYPE")]
public string _Mttype { get; set; }
[XmlElement("MATLTYPE")]
public string _Matltype { get; set; }
public string MATLTYPE { get { return GetMATLTYPE(); } set { matltp = value; } }
public string GetMATLTYPE()
{
var mistakes = new [] {_Mttype, _Matltype};
matltp = mistakes.FirstOrDefault(x => !string.IsNullOrEmpty(x));
return matltp;
}
更新2:
“最好” 的解决方案,我曾是设置取其提供,然后进行肯定要么适用于我需要的字符串,当我这样做我的foreach
循环:
row.WORKCENTER = row.WORKCENTER ?? row.DEPTID;
如果我从一开始就不能拦截它,我想将这个更改应用到集合中的每个对象而不是逐行应用会很好。
我需要使用'MATLTYPE'作为其他操作的最终值的字符串。如何使用'getMATLTYPE'结果来设置'MATLTYPE'值? – davids
这似乎并没有工作。实际上,每当我运行调试以查看它返回的值时,当我尝试查看这些值时,它会崩溃。 – davids