2

私はこれで完全に迷っています。次のように実装したときに必要なことを行うコードがあります。

return filters.Add(m => m.Metadata.RecordId).IsEqualTo(1);

ここで、m はTestObjクラス オブジェクトで、Addメソッドの引数はExpression<Func<TestObj,bool?>>です。

問題は、Add 内に m.Metadata.RecordId をハードコーディングできないことです。ここで取得するのは、使用する必要があるプロパティ (この場合は "Metadata.RecordId") について通知する文字列であるためです。私がする必要があるのは、m => m.Metadata.RecordId と同じことを行うこの文字列を使用して式を作成することです。私はこのようなものが必要です:

string propertyName = "Metadata.RecordId";
Expression expr = null;//create expression here somehow that will do the same as m => m.Metadata.RecordId
return filters.Add(expr).IsEqualTo(1); 

それ、どうやったら出来るの?

4

2 に答える 2