最近、論理構造の観点から現在のモデルとは異なる、まったく新しいデータモデルを導入しました。また、モデル構造をXMLとしてお客様に公開したいため、モデルの言語をドイツ語から英語に変更しました。
モデルを変換できるようにするために、新しいモデルのさまざまなクラスのすべてのプロパティを古いモデルに基本的に一致させる明示的な変換を実装しました。
このような:
private OldModel Convert(NewModel src)
{
var dst = new OldModel();
dst.Prop1 = src.SomeOtherProp
dst.Prop2 = Convert(src.ComplexProp);
//....
return dst;
}
ここで、カバレッジとテストの目的で、新しいモデルのすべてのプロパティが古いモデルに書き込まれていることを確認します。また、プロパティを忘れないようにし、将来のモデル拡張のためにプロパティを忘れないようにします。
私の考えは、コードファイルを解析し、新しいモデルから読み取られたすべてのプロパティを抽出し、リフレクションを使用して新しいモデルを実行し、それらをその中の実際のプロパティと比較することです。
この解決策は良いものとは思えません:-)何か提案はありますか?
助けてくれてありがとう!