У меня есть этот метод:
public void DoSomething<T>(Expression<Func<T, object>> method)
{
}
Если этот метод вызывается так:
DoSomething(c => c.SomeMethod(new TestObject()));
... как получить значение параметра, который был передан в SomeMethod ()?
Если параметр является типом значения, это работает:
var methodCall = (MethodCallExpression)method.Body;
var parameterValue = ((ConstantExpression)methodCall.Arguments[0]).Value;
Однако, когда я передаю ссылочный тип, methodCall.Arguments [0] является MemberExpression, и я не могу понять, как написать код, чтобы получить значение из него.