1

ユーザーが指定したプロパティ名に基づいて選択する動的 Lambda 式を作成しようとしましたが、「ラムダ宣言に指定されたパラメーターの数が正しくありません」というエラーが発生しました。私はこれに到達しようとしています:() => myObj.propName

私のコードの最新バージョンは次のとおりです。

    var parameter = Expression.Parameter(typeof(myObjType), propName);
    MemberExpression exp = Expression.PropertyOrField(parameter, propName);
    var func = Expression.Lambda<Func<string>>(exp, parameter).Compile();

最後の行でエラーが発生します。私は SO や他の場所でいくつかの同様のことを見てきましたが、これは私をここまで導いてくれましたが、私が間違っていることを理解することはできません. 今のところ、私が操作しようとしているすべてのプロパティは文字列です。

ありがとう。

4

1 に答える 1

0

動的式 (文字列として) を使用してクエリを実行するには、Microsoft の Scott Gu によるDynamic LINQを使用できます。

詳細については、この回答を確認してください。

動的 Linq ライブラリは、複雑に見える Expression.* 呼び出しを、Property Name を として受け入れる単純な Linq Syntax に抽象化しますstring

于 2012-12-29T18:01:48.663 に答える