2
ユーザーの入力に基づいて、私はExpression
を動的に構成します。今、私はこの表現が書かれている場合とそうでない場合を区別する必要があります。書き込み可能な式の例は、セッターを持つプロパティを参照するプロパティ式です。書込み不可能な式は、たとえばメソッドの呼び出しです。式が書き込み可能かどうかはどのように調べることができますか?
書き込み不能式に代入しようとすると、式ライブラリによってArgumentExpression
が発生します。現在のところ、私は持っています:
try
{
assign = Expression.Assign(prop2, prop1);
}
catch (ArgumentException)
{
...
}
さまざまな理由で最大のコードではありません。私は誰かがより良い方法を知っているのだろうかと思います。イアン・マーサーによってヒントをもとに、私が終わってきた
'Expression.Assign'のソースコードを見てください。メソッド 'RequiresCanWrite'が表示されます。 https://github.com/dotnet/corefx/blob/master/src/System.Linq.Expressions/src/System/Linq/Expressions/Expression.cs#L308を参照してください。 –