这是一个使用表达式获取属性或字段名称以入门的示例:
public static MemberInfo GetMemberInfo<T, U>(expression<Func<T, U>> expression){ var member = expression.Body as Memberexpression; if (member != null) return member.Member; throw new ArgumentException("expression is not a member access", "expression");}调用代码如下所示:
public class Program{ public string Name { get { return "My Program"; } } static void Main() { MemberInfo member = ReflectionUtility.GetMemberInfo((Program p) => p.Name); Console.WriteLine(member.Name); }}不过请注意:简单的陈述
(Program p) => p.Name实际上涉及大量的工作(可能要花费可观的时间)。考虑缓存结果,而不是频繁调用该方法。



