뭔가?
string displayName = GetDisplayName((Dummy x) => x.foo);
// ...
public static string GetDisplayName<T, U>(Expression<Func<T, U>> exp)
{
var me = exp.Body as MemberExpression;
if (me == null)
throw new ArgumentException("Must be a MemberExpression.", "exp");
var attr = me.Member
.GetCustomAttributes(typeof(DisplayAttribute), false)
.Cast<DisplayAttribute>()
.SingleOrDefault();
return (attr != null) ? attr.Name : me.Member.Name;
}
또는, 인스턴스에 대해 메서드를 호출하고 형식 유추를 활용 할 수 있도록하려면 : 당신은 C# 서버 코드가 무엇을 의미
var dummy = new Dummy();
string displayName = dummy.GetDisplayName(x => x.foo);
// ...
public static string GetDisplayName<T, U>(this T src, Expression<Func<T, U>> exp)
{
var me = exp.Body as MemberExpression;
if (me == null)
throw new ArgumentException("Must be a MemberExpression.", "exp");
var attr = me.Member
.GetCustomAttributes(typeof(DisplayAttribute), false)
.Cast<DisplayAttribute>()
.SingleOrDefault();
return (attr != null) ? attr.Name : me.Member.Name;
}
를? – sll
@ Html.LabelFor (model => model.Foo) <- "Foo"가 출력되지 않습니까? DisplayNameAttribute를 대신 사용해야 할 수도 있습니다. –
@sllev 죄송합니다. 코드가 잘못되었습니다. 컨트롤러의 액션에서. – AJC