有没有办法获取 C# 中的内部类列表?
正如标题所示。我想要一个给定类的所有内部类的列表,它可以是名称列表或类型列表 - 我并不大惊小怪。这可能吗?我认为可能有一种使用反射的方法,但尚未找到。
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 there might be a way using reflection but haven't been able to find one.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您需要 Type.GetNestedTypes。这将为您提供类型列表,然后您可以查询它们的名称。
You want Type.GetNestedTypes. This will give you the list of types, which you can then query for their names.
不是
Type.GetNestedTypes
做你想做的事?请注意,如果您想获得“双重嵌套”类型,则需要递归 - 因为 Foo.Bar.Baz 是 Foo.Bar 中的嵌套类型,而不是 Foo 中的嵌套类型。
对于“现代”环境(.NET 4.5、PCL、UWA 等),您需要
TypeInfo.DeclaredNestedTypes
改为,例如type.GetTypeInfo().DeclaredNestedTypes
,使用GetTypeInfo()
扩展方法。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 theGetTypeInfo()
extension method.Type.GetNestedTypes() 将返回指定 Type 的公共嵌套类型。
如果您还需要私有和内部嵌套类型,则必须调用 Type.GetNestedTypes( BindingFlags bindingFlags) 方法如下:
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.GetNestedTypes ()
。Yes, there is. Use
Type.GetNestedTypes()
.