私はDriverStaisticというモデルを持っていて、それを継承したビューモデル ビューモデルには余分なプロパティが含まれていません。それはDriverStaisticの空の継承です。私は外部ライブラリからモデルオブジェクトを受け取り、結合を最小限に抑えたいと思っています。 ベースクラスとサブクラスに同じプロパティが含まれているので、ラムダ式を使用する以外に、プロパティを追加または削除するたびに変更する必要があります。ベースモデルをサブビューモデルに変換する
Iリフレクションを使用してこのソリューションが出てきましたが、将来的にパフォーマンスの問題が発生すると思います。 誰にでも良い提案ができますか?
public static void FromDriverStatistic(this DriverStatisticsVm viewModel, object model)
{
bool isDriverStatistic = model is DriverStatistic;
if(!isDriverStatistic)
throw new InvalidCastException();
var modelProperties = model.GetType().GetProperties();
foreach (var property in modelProperties)
{
property.SetValue(viewModel, property.GetValue(model));
}
}
"外部ライブラリからモデルオブジェクトを受け取りました。これを最低限に抑えたい"という結果は、このような汚れたハッキングを行う必要があるのでしょうか? – Will