2014-12-17 2 views
0

개체 유형을 반환하는 서비스 메서드가 있습니다.리플렉션을 사용하여 개체 유형의 목록에서 값에 액세스하는 방법

var serviceResponse = InvokeServiceMethod(parameters); 

나는 전직에 대한 반사를 사용하여 데이터에 액세스 할 수 오전 : 응답에서

serviceResponse.GetType().GetProperty("NumberOfRecords").GetValue(serviceResponse, null) 

나는 목록을 가지고 있지만 값에 액세스 할 수 없습니다입니다. 던지는 오류 '인덱스가 배열 범위를 벗어났습니다'. 내부의 데이터를 볼 수 있습니다. 다음은 내가하려는 일입니다.

PropertyInfo summary= serviceResponse.GetType().GetProperty("SummaryList"); 
PropertyInfo test = summary.PropertyType.GetGenericArguments()[0].GetProperty("Name"); 
+0

SummaryList 속성의 유형은 무엇입니까? GetGenericArguments의 빈 배열이 인덱싱 될 때 예외가 throw됩니다. –

+0

[일반 함수 유형 매개 변수]에 대해서만 사용하는'GetGenericArguments'를 잘못 사용했을 수도 있습니다. (http://msdn.microsoft.com/ ko-kr/library/ms172192.aspx). –

+0

그래서 'SummaryList'유형이 무엇인지 모르는 경우 어떻게 값을 액세스 할 수 있습니까? –

답변

0

귀하의 제안에 감사드립니다. 작동했습니다. 다음은이 문제를 해결하기 위해 수행 한 작업입니다.

dynamic collection = serviceResponse.GetType().GetProperty("SummaryList").GetValue(serviceResponse, null); 
foreach (var item in collection) 
{ 
    var value = item.Name; 
} 
관련 문제