3

Linq Where および OrderBy メソッドで使用されるデリゲートを「信頼できる」ものにする最善の方法は何でしょうか?

たとえば、私のコードがこれらの型Func<T,Boolean>と を渡さFunc<T>れた場合、これらが渡されたオブジェクトでのみ動作し、たとえば、ファイルシステムへのアクセスなどの厄介なことをしないことを確認するための最良のオプションは何でしょうか?

1 つの方法は、部分的に信頼された AppDomain を起動してデリゲートをその中で実行することだと思いますが、他のオプションがあるのでしょうか?

ありがとう

4

1 に答える 1

1

Expression<Func<...>>の代わりに使用するオプションが 1 つありますFunc<...>。次に、単純に (etc から) ツリーをたどってx => x.Foo、使用されているオブジェクトとメソッドを検証します.Foo。ここでの利点は、呼び出し元にとっては、デリゲートをラムダとして渡すのと同じように見えることです。

簡単な方法は、並べ替え/フィルター/などに使用する文字列 (名前) または列挙型を渡すことです。

于 2011-02-26T10:42:55.563 に答える