Получить тип контейнера для вложенного типа с использованием отражения
Скажем, у меня есть класс вроде этого:
public class Test {
public class InnerTest{}
}
Теперь у нас есть объект TypeInfo
для InnerTest
. Как узнать объект TypeInfo
для теста из InnerTest
?
Другой способ прост, я могу просто использовать GetNestedTypes()
, но я не могу найти метод или свойство (кроме IsNestedType
) для определения содержащего класса для вложенного класса.
Ответы
Ответ 1
Вы можете получить это, извлекая свойство "DeclaringType".
Цитата MSDN:
Объект Type, представляющий закрытый тип, если текущий тип является вложенным типом; или определение общего типа, если текущий тип является параметром типа общего типа; или тип, объявляющий общий метод, если текущий тип является параметром типа общего метода; иначе, null.
http://msdn.microsoft.com/en-us/library/system.type.declaringtype.aspx
Ответ 2
Похоже, вы ищете Type.DeclaringType
свойство.