2012-07-30 15 views
20

Decir que tengo una clase como esta:Obtener el tipo de contenedor para un tipo anidado utilizando la reflexión

public class Test { 
    public class InnerTest{} 
} 

Ahora tienen un objeto para TypeInfoInnerTest. ¿Cómo puedo averiguar el objeto TypeInfo para Test from InnerTest?

La otra forma es simple, solo puedo usar GetNestedTypes(), pero no puedo encontrar un método o propiedad (que no sea IsNestedType) para descubrir la clase que contiene una clase anidada.

Respuesta

28

Puede obtener esto recuperando la propiedad "DeclaringType".

Citando MSDN:

un objeto de tipo que representa el tipo envolvente, si el tipo de corriente es un tipo anidado; o la definición de tipo genérico, si el tipo actual es un parámetro de tipo de tipo genérico; o el tipo que declara el método genérico, si el tipo actual es un parámetro de tipo de un método genérico; de lo contrario, nulo.

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

+0

Una solución tan simple. Y he estado googleando loco :) – jessehouwing

Cuestiones relacionadas