Как мне вернуть значение свойства, если я не знаю имя свойства во время выполнения? - PullRequest
0 голосов
/ 09 июня 2011

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

public string GetTheValueOfTheProperty(PropertyInfo propertyInfo,Object myObject){
       string propname = propertyInfo.Name;
       if (propName == "IsSelected"){
          return myObject.IsSelected.ToString();
       }
    //...
}

Это работает, но не работает, если я не знаю название свойства.Как бы я это сделал в этом сценарии?

Ответы [ 2 ]

5 голосов
/ 09 июня 2011

http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.getvalue.aspx

Вы можете позвонить propertyInfo.GetValue(myObject, null);.

. Вы можете преобразовать в string с ToString(), но сначала вы должны проверить значения null - в противном случаевы получите NullReferenceException.

0 голосов
/ 09 июня 2011

Объект PropertyInfo позволяет вам вызывать свойство объекта:

object value = propertyInfo.GetGetMethod().Invoke(myObject, new object[] { });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...