0

私はラムダ式を使用しており、プロパティ名と値を抽出する必要があります:

  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 にするにはどうすればよいでしょうか?

4

1 に答える 1