2017-04-04 10 views
0

MemberExpressionでプロパティ値を取得しようとしています。MemberExpressionからプロパティ値を取得する方法

たとえば、次のオブジェクトがある場合、「Id」プロパティでGuidの値を取得します。

public class Employee 
{ 
    public Guid Id {get; set} 
} 

イベントが呼び出され、そのイベントにMemberExpressionが渡されました。 MemberExpressionパラメーターは、Employee.Idプロパティーを表します。 「Id」のの値をMemberExpressionから取得するにはどうすればよいですか?私が使用しようとしているコードは、次のとおりです。

(MemberExpression employeeIdMember is parameter to the event) 
if ((employeeIdMember.Member as PropertyInfo) != null) 
{ 
    PropertyInfo employeeIdProperty = employeeIdMember.Member as PropertyInfo; 
    // at this point employeeIdProperty represents {System.Guid Id} 

    PropertyInfo parentObject = (MemberExpression)employeeIdMember.Expression).Member as PropertyInfo; 
    // at this point, parentObject represents {BusinessObjects.Employee Employee} 

    // HOW to call employeeIdProperty.GetValue(parentObject) to get the Id Property Value?? I've tried this call here, but it does not work 
} 

答えて

0

この時点では、二重間接化するための2つのプロパティがあります。

それは、エントリポイントを逃す: "のBusinessObjects"

への参照は、

var businessObjects = ??? 
var id = employeeIdProperty.GetValue(parentObject.GetValue(businessObjects)); 
を呼び出します
関連する問題