2012-07-30 178 views
20

嵌套类型说我有一类这样的:获取容器类型使用反射

public class Test { 
    public class InnerTest{} 
} 

现在有一个TypeInfo对象InnerTest。我如何从InnerTest找出TypeInfo的测试对象?

其他的方法很简单,我可以使用GetNestedTypes(),但我找不到一个方法或属性(IsNestedType除外)来找出嵌套类的包含类。

回答

28

您可以通过检索属性“DeclaringType”来获得此信息。

引用MSDN:

表示封闭类型A型对象,如果当前类型是嵌套类型;或泛型类型定义,如果当前类型是泛型类型的类型参数;或者声明泛型方法的类型,如果当前类型是泛型方法的类型参数;否则为空。

http://msdn.microsoft.com/en-us/library/system.type.declaringtype.aspx

+0

这样一个简单的解决方案。我一直在疯狂地使用Google – jessehouwing 2012-07-30 15:14:22