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 クラスを設計するにはどうすればよいですか? これは可能ですか?