2017-05-19 4 views
0

"개체 데이터 형식에서 상속되는 모든 형식"(일반)을 매개 변수로 받아들이고 모든 속성을 반복하는 메서드를 만들고 싶습니다.PCL 프로젝트에서 객체의 모든 속성 (하위/하위 속성 포함)을 반복하는 방법은 무엇입니까?

foreach (var prop in obj.GetType().GetProperties()) 
{ 
    Console.WriteLine("{0} = {1}", prop.Name, prop.GetValue(obj, null)); 
} 

그러나 GetProperties() 방법은 PCL 프로젝트에 존재하지 않습니다

나는이 시도.

답변

3

대부분의 PCL 프로파일에서 적어도 .NET 기반의 PCL 프로파일에서는 Type 대신 TypeInfo을 사용해야 유형 정보를 얻을 수 있습니다.

기본적으로 당신은 특정 유형에 대해 선언 된 모든 속성의 목록은

obj.GetType().GetTypeInfo().GetProperties() 

obj.GetType().GetProperties()을 대체 DeclaredProperties 대신 GetProperties()를 사용할 수 있습니다. 상속 된, 비공개, 인스턴스 및 정적 속성을 포함한 전체 속성 목록을 보려면 GetRuntimeProperties() 확장 메서드를 사용할 수 있습니다.

TypeInfo에 대한 자세한 내용은 MSDN documentation을 참조하십시오.

+0

감사합니다. 이 작동합니다. 내 질문에 조금 편집, 전에 충분히 명확하지 않았거나 그냥 모든 하위/하위 것들도 모든 속성을 통해 반복 할 필요가 간과했다. 나는 그것이 재귀와 함께 가장 쉬울 것이라고 생각한다. 하지만 현재 개체가 int 또는 목록 또는 사용자 지정 개체인지 확인하는 방법을 모르겠습니다. 이 방법은 내가 그 객체에 깊숙이 들어가야하는지 알 수 있습니다. – JedatKinports

+0

나는 이것이 당신이하고 싶은 일이라는 질문이나 예에서 분명하지 않다. 나는 당신이 그 질문에 대한 답을 구하는 것이 좋습니다. –