反射

2012-07-30 19 views
20

を使用して、ネストされたタイプのコンテナの種類は、私は、このようなクラスがあるとしなさい:反射

public class Test { 
    public class InnerTest{} 
} 

は今InnerTestためTypeInfoオブジェクトを持っています。テストのTypeInfoオブジェクトをInnerTestから見つけるにはどうすればよいですか?

他の方法は単純ですが、私はちょうどGetNestedTypes()を使用できますが、ネストされたクラスの包含クラスを把握するためのメソッドまたはプロパティ(IsNestedType以外)を見つけることができません。

答えて

28

「DeclaringType」プロパティを取得することで、これを取得できます。 MSDNを引用

囲み型を表すTypeオブジェクト、現在の型は、ネストされたタイプである場合、現在の型がジェネリック型の型パラメータである場合はジェネリック型定義を返します。現在の型が汎用メソッドの型パラメータである場合、汎用メソッドを宣言する型。それ以外の場合はnull

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

+0

このような簡単な解決策です。そして私は自分自身を夢中にしてきた:) – jessehouwing