0

同じタイプ (bool) の 2 つのプロパティを持つビューモデルがあります。プロパティの 1 つをブール値に設定する関数が好きです。IsReadonly プロパティがあるとします。

public void SetReadOnly(MyViewModel vm, bool newVal)
{
    vm.IsReadOnly = newVal;
}

今、私はそれをより一般的にして、両方の機能を持ちたいと思っています:

public void SetBooleanProperty(MyViewModel vm, bool newVal, ?bool? myProperty)
{
    vm.myProperty = newVal; // sure this is an error, myProperty doesn't exist in the viewmodel. But that shows the way i like to have. 
}

私はこのアプローチを開始しました:

public void SetBooleanproperty<TProp>(MyViewModel vm, bool newVal, TProp myProperty)
{
     vm.??? = newVal;
}

.Net のリフレクション クラスのどこかで利用できると思われる関数 GetPropertyByName("IsReadonly") を使用するのは好きではありません。理由: 別の開発者がプロ​​ジェクトをリファクタリングして IsReadonly の名前を変更した場合、文字列は更新されません。これに対する解決策はありますか?

4

2 に答える 2