As per the title. I\'d like a list of all the inner classes of a given class, it can be a list of names or a list of types - I am not fussed. Is this possible? I thought the
Doesn't Type.GetNestedTypes do what you want?
Note that if you want to get "double-nested" types, you'll need to recurse - as Foo.Bar.Baz is a nested type in Foo.Bar, not in Foo.
For "modern" environments (.NET 4.5, PCLs, UWA etc) you need TypeInfo.DeclaredNestedTypes instead, e.g. type.GetTypeInfo().DeclaredNestedTypes
, using the GetTypeInfo() extension method.
Type.GetNestedTypes() will return the public nested types of the specified Type.
If you also want the private and internal nested types, you must call the Type.GetNestedTypes(BindingFlags bindingFlags) method like this:
Type[] nestedTypes = typeof(MyType).GetNestedTypes(BindingFlags.Static |
BindingFlags.Instance |
BindingFlags.Public |
BindingFlags.NonPublic);
Yes, there is. Use Type.GetNestedTypes().
Type[] nested = typeof(SomeClass).GetNestedTypes();
You want Type.GetNestedTypes. This will give you the list of types, which you can then query for their names.