2009-08-13 3 views
0

Я пытаюсь использовать отражение для сбора свойства из класса, возвращающего определенный тип. Однако некоторые свойства, которые я возвращаю, являются строго типизированными списками, в которых содержится тип, который я хочу. По сути я пытаюсь сделать следующее:Соответствующие типы с использованием отражения в .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 

Очевидно, что это не работает, как он выдает ошибку говоря т не является объявленным типом. Есть какой-либо способ сделать это?

Спасибо.

ответ

2

В C#, вы ищете этот синтаксис:

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

Какой отражатель говорит это:

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

Великий, работал как шарм. Благодаря! – link664

Смежные вопросы