【发布时间】:2013-09-14 17:35:13
【问题描述】:
寻找一种干净的方式来以类型安全的方式发现方法的字符串名称。
这是我拥有的属性,但我无法弄清楚如何为方法做这件事。
class Program
{
class Customer
{
public String Id { get; set; }
}
public static String GetPropertyName<T>(
Expression<Func<T, Object>> selector) where T : class
{
var expression = (MemberExpression)selector.Body;
return expression.Member.Name;
}
static void Main(string[] args)
{
String propertyName = GetPropertyName<Customer>(c => c.Id);
}
}
【问题讨论】:
-
有趣。示例用法会是什么样子?
GetMethodName<Foo>(f => f.Method)或GetMethodName<Foo>(f => f.Method(valid, args))或其他?
标签: c#