Как можно получить значения нетипизированного объекта? - PullRequest
1 голос
/ 29 марта 2011

Я хочу получить типизированные значения свойств объекта.Вот мой код:

 Type tip = Type.GetType(pair.Key.GetType().ToString());

  object uretilenNesne = Activator.CreateInstance(tip);

Уретиленнесне имеет правильный тип, но я хочу получить доступ к значениям свойств уретиленнесне.Есть идеи?

КР,

Дакмаз

1 Ответ

3 голосов
/ 29 марта 2011
  1. Вы знаете название объекта, к которому хотите получить доступ в время компиляции ? Если да, то вы можете использовать тип данных dynamic:

    Type tip = Type.GetType(pair.Key.GetType().ToString());
    
    dynamic uretilenNesne = Activator.CreateInstance(tip);
    
    var x = uretilenNesne.someProperty;
    
  2. Если вы знаете имя свойства в время выполнения , вы можете использовать отражение: Type.GetProperty вернет свойство с заданной подписью, к которой можно получить доступ с PropertyInfo.GetValue или SetValue. Пример:

    Type tip = Type.GetType(pair.Key.GetType().ToString());
    object uretilenNesne = Activator.CreateInstance(tip);
    
    PropertyInfo pinfo = tip.GetProperty("someProperty");
    object x = pinfo.GetValue(uretilenNesne, null);
    
  3. Если вы не знаете имя свойства, используйте Type.GetProperties , чтобы получить массив всех свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...