Получить все свойства для имени класса, используя отражение - PullRequest
1 голос
/ 21 марта 2011

Я загружаю dll, как показано ниже,

Type[] _Type = Assembly.GetAssembly(typeof(StdAdapter)).GetTypes();

Теперь я хочу получить все свойства для определенного «имени класса», которое передается в виде строки.

Подскажите, пожалуйста, как этого добиться.

Спасибо

Ответы [ 3 ]

1 голос
/ 21 марта 2011

Функция Type.GetProperties () возвращает массив объектов PropertyInfo.

Таким образом, вы должны иметь:

foreach(Type current in _Type)
{
  PropertyInfo[] properties = current.GetProperties();
}

Вы также можете сделать: typeof (StdAdapter) .GetProperties ()

1 голос
/ 21 марта 2011

Вы можете использовать немного Linq to Objects, чтобы получить нужный класс из массива:

_Type.SingleOrDefault(t => t.Name == "CLASS_NAME").GetProperties();
1 голос
/ 21 марта 2011

Вы можете использовать

Type objectType = Type.GetType("ClassName");

Когда вы получите это время, вы можете использовать тип для дальнейшего отражения:

objectType.GetProperties();

, который вернет свойства.

Это означает, что вместо вашего вызова в массив вы можете использовать:

Assembly.GetAssembly(typeof(StdAdapter)).GetType("ClassName");

Единственное, что нужно сделать, - это перебрать массив, чтобы найти правильный тип, не будучи уверенным в производительности, которая была бы лучшеЯ бы пошел с GetType (), хотя.

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