Ответ 1
Вы хотите Type.GetNestedTypes. Это даст вам список типов, которые вы можете запросить для своих имен.
В соответствии с заголовком. Мне нужен список всех внутренних классов данного класса, это может быть список имен или список типов - я не суетился. Это возможно? Я думал, что может быть способ использовать отражение, но не смог найти его.
Большое спасибо, Томас
Вы хотите Type.GetNestedTypes. Это даст вам список типов, которые вы можете запросить для своих имен.
Не Type.GetNestedTypes
делать то, что вы хотите?
Обратите внимание, что если вы хотите получить "двойные вложенные" типы, вам нужно будет рекурсивно - поскольку Foo.Bar.Baz является вложенным типом в Foo.Bar, а не в Foo.
Для "современных" сред (.NET 4.5, PCL, UWA и т.д.) вам нужно TypeInfo.DeclaredNestedTypes
, например. type.GetTypeInfo().DeclaredNestedTypes
, используя GetTypeInfo()
метод расширения.
Type[] nested = typeof(SomeClass).GetNestedTypes();
Да, есть. Используйте Type.GetNestedTypes()
.
Type.GetNestedTypes() вернет общедоступные вложенные типы указанного типа.
Если вам также нужны частные и внутренние вложенные типы, вы должны вызвать метод Type.GetNestedTypes(BindingFlags bindingFlags) следующим образом:
Type[] nestedTypes = typeof(MyType).GetNestedTypes(BindingFlags.Static |
BindingFlags.Instance |
BindingFlags.Public |
BindingFlags.NonPublic);