2016-10-31 5 views
0

実行時までオブジェクトのどのプロパティを割り当てる必要があるのか​​わかりません。実行時までプロパティ名がわからない場合、オブジェクトのプロパティの1つに値を割り当てる方法

クラスのインスタンスはservicerecordあり、それは文字列として定義されているいくつかのプロパティがあります「2016年11月2日を言う、の実行時に、私はプログラムは、文字列値を代入する必要があることを発見するとしましょう

public class ServiceRecord 
{ 
     public ServiceRecord(){} 

     public string dos1 { get; set; } 
     public string dos2 { get; set; } 
     public string dos3 { get; set; } 
     public string dos4 { get; set; } 
     <snip> 
    } 

を"(つまり、日付の文字列表現)をservicerecord.dos3に設定します。

どのようにC#でSystem.Reflectionを使用して行われますか?

それは次のようになり、JavaScriptで:servicerecord["dos3"] = ...

文字列でプロパティを参照するC#のカウンターパートは何ですか?

答えて

1

これを行うにはPropertyInfoを使用できます。

// Get property to write to. 
PropertyInfo pi = _serviceRecord.GetType().GetProperty("dos3"); 
// Write value to property. 
pi.SetValue(_serviceRecord, stringValue, null); 
0

Dictionary<string,string>のように聞こえます。 ServiceRecordのコンストラクタで4つのエントリを初期化することを忘れないでください。

関連する問題