私はラムダ式を使用しており、プロパティ名と値を抽出する必要があります:
public MyMapping(Expression<Func<TEntity, int?>> expression)
{
this.expression = expression;
if (this.expression != null)
{
if (expression.Body is MemberExpression)
{
this.expressionMemberName = ((MemberExpression)expression.Body).Member.Name;
}
else
{
var op = ((UnaryExpression)expression.Body).Operand;
this.expressionMemberName = ((MemberExpression)op).Member.Name;
}
}
}
式は次のように設定されます。
this.MyProperty(m => m.NumberOfDays.Value);
私は次のものが欲しい:
var propertyName = this.expressionMemberName;
var value = this.expression.Compile()(instance);
私のプロパティは null 許容であるため、式をコンパイルしようとすると例外が発生します。また、propertyName は NumberOfDays ではなく「Value」に設定されます。
このデータを取得して式を compile にするにはどうすればよいでしょうか?