1

Dictionary<TKey,TValue>プロパティをパラメーターとして受け取るメソッドの追加を実装しようとしています。

辞書を開始する方法:

ExpressionDictionary<string,string> OrigionalValues = new ExpressionDictionary<string,string>();

そして、次のようなコードでプロパティに項目を追加したい:

public string Title
{
     get { return _title; }
     set
     {
          if (_title != value)
          {
               _title = value;
               OrigionalValues.Add(() => Title,value);                         
          }
     }
}

私の ExpressionDictionary クラス:

 public class ExpressionDictionary<T,TValue> : Dictionary<string, TValue>
 {
      public void Add(Expression<Func<T>> property, TValue value)
      {
           var body = property.Body as MemberExpression;
           if (body != null) Add(body.Member.Name, value);
      }
 }

したがって、PropertName は辞書の TKey として文字列として格納されます。これは、プロパティが文字列のタイプの場合に機能しますが、DateTime プロパティと文字列プロパティを追加しようとすると、変換できないためハングアップします。これは明らかです。

私が達成しようとしているのは、プロパティの文字列 Name を次のようにハードコーディングする必要がないことです

OrigionalValues.Add("Title",value);

必要なすべてのプロパティ タイプから Add メソッドを呼び出すことができ、プロパティ名が TKey として格納される Add メソッドまたは ExpressionDictionary クラスを設計するにはどうすればよいですか? これは可能ですか?

4

1 に答える 1