2009-08-13 10 views
0

Ich versuche Reflektion zu verwenden, um eine Eigenschaft aus einer Klasse zu sammeln, die einen bestimmten Typ zurückgibt. Einige der Eigenschaften, die ich zurückgebe, sind jedoch stark typisierte Listen, die den gewünschten Typ enthalten.Übereinstimmende Typen mit Reflektion in .NET

Public Function GetPropertyInfo(ByVal t as System.Type) 
    for each pi as System.Reflection.PropertyInfo in ob.GetType.GetProperties() 
     if pi.PropertyType.equals(GetType(List(Of t))) 
     return pi 
     end if 
    next 

    Return Nothing 
End Function 

Offensichtlich ist dies nicht funktioniert, da es einen Fehler wirft sagen t ist kein deklarierten Typ: Im Wesentlichen folgendes zu tun Ich versuche. Gibt es eine Möglichkeit, dies zu tun?

Danke.

Antwort

2

In C#, suchen Sie diese Syntax:

Type desiredPropertyType = typeof(List<>).MakeGenericType(new Type[] { t }); 

Welche Reflektor sagt, ist dies:

Dim desiredPropertyType As Type = GetType(List(Of)).MakeGenericType(New Type() { t }) 
+0

Große, arbeitete wie ein Charme. Vielen Dank! – link664

Verwandte Themen