我们最近引入了一个全新的数据模型,从逻辑结构的角度来看,它与我们当前的模型不同。我们还将模型的语言从德语更改为英语,因为我们希望将模型结构作为 XML 开放给我们的客户。
为了能够转换模型,我们实现了显式转换,它基本上将新模型不同类的所有属性匹配到我们的旧模型中。
像这样:
private OldModel Convert(NewModel src)
{
var dst = new OldModel();
dst.Prop1 = src.SomeOtherProp
dst.Prop2 = Convert(src.ComplexProp);
//....
return dst;
}
现在我们要确保,新模型的所有属性都写入旧模型以进行覆盖和测试。我们还想确保我们没有忘记任何属性,并保证对于未来的模型扩展,我们不会忘记某个属性。
我的想法是解析代码文件,提取从新模型中读取的所有属性,通过反射运行新模型,将它们与其中的实际属性进行比较。
这个解决方案感觉不太好:-)有什么建议吗?
我很感激任何帮助!