2013-04-16 3 views
0

У меня проблема, в моем коде я сделал цикл, получая PropertyInfo моего объекта и помещаю его в obj, но если мое значение obj было List, я должен позвонить другому метод, я пытаюсь проверить это, используя следующий код, но мой блок if не работал.Сравнение значений общих объектов

foreach (PropertyInfo obj in process.GetType().GetProperties()) 
     { 
      email += createEmail(obj.Name, Convert.ToString(objeto.GetValue(processo, null))); 

      if (obj.GetType() == typeof(System.Collections.Generic.List<>)) 
      { 
       CreateEmail<Object>(obj, ""); 
      } 
     } 

Есть идеи? Спасибо заранее.

+0

Ну во-первых, 'obj.GetType()' вернет тип 'PropertyInfo'; вы действительно хотите [obj.PropertyType] (http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.propertytype.aspx). Даже тогда тип не будет равен несвязанному «List <>», а скорее некоторому связанному типу «List ». –

ответ

0
if (obj.PropertyType.IsGenericType && 
    obj.PropertyType.GetGenericTypeDefinition() == typeof (System.Collections.Generic.List<>)) 
{ 

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