Проверьте мой хак ответ здесь:
Почему в C # нет оператора `fieldof` или` methodof`?
Раньше я делал это другим способом, который использовал Func
вместо Expression<Func<...>>
, но я был гораздо менее доволен результатом. MemberExpression
, используемый для обнаружения поля в моем методе fieldof
, вернет PropertyInfo
при использовании свойства.
Редактировать # 1: Это работает для подмножества проблемы:
Func<object> func = x.DoSomething;
string name = func.Method.Name;
Редактировать # 2: Тот, кто пометил меня, должен уделить секунду, чтобы понять, что здесь происходит. Деревья выражений могут неявно использоваться с лямбда-выражениями и являются наиболее быстрым и надежным способом получения конкретной запрашиваемой информации здесь.