2010-05-04 5 views
1

мне нужно имя свойства в моем приложении, и я использую следующий код, чтобы получить егоПолучить имя свойства из класса

string PropertyName =SomeClass.GetType().GetProperty("Category").Name; 

Но я думаю, что это плохая идея. Потому что я использую классы веб-службы, и я не знаю, когда имена свойств могут быть изменены. Этот код дает мне исключение только во время выполнения. Но если я напишу что-то вроде этого SomeClassInstance.Property.GetProperyName, я получаю исключение в момент компиляции и исправления этой проблемы. Можно ли получить имя свойства динамически?

ответ

1
Expression<Func<string>> expression =() => Sample.Foo; 
MemberExpression body = (MemberExpression)expression.Body; 
string name = body.Member.Name; 

Где Sample.Foo ваша собственность Так что бы SomeClass.Category.Name

Смежные вопросы