2012-07-30 21 views
20

Dire che ho una classe come questa:Prendi il tipo di contenitore per un tipo nidificato utilizzando la riflessione

public class Test { 
    public class InnerTest{} 
} 

hanno ora un oggetto TypeInfo per InnerTest. Come posso trovare l'oggetto TypeInfo per Test da InnerTest?

Il contrario è semplice, posso solo usare GetNestedTypes(), ma non riesco a trovare un metodo o una proprietà (diversi IsNestedType) per capire la classe che contiene una classe annidata.

risposta

28

È possibile ottenere questo recuperando la proprietà "DeclaringType".

Citando MSDN:

Un oggetto Type che rappresenta il tipo contenitore, se il tipo di corrente è un tipo annidato; o la definizione di tipo generico, se il tipo corrente è un parametro di tipo di un tipo generico; o il tipo che dichiara il metodo generico, se il tipo corrente è un parametro di tipo di un metodo generico; altrimenti, null.

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

+0

Una soluzione così semplice. E sono stato googlato me stesso pazzo :) – jessehouwing

Problemi correlati