2013-04-16 4 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<>)) 
{ 

}