2012-09-27 5 views
1

아래와 같이 다른 중첩 개체 및 속성이있는 개체가있는 경우. 함수에이 객체를 전달하면개체에 null 값이 있는지 확인하십시오.

var request = new GetInfoRequest 
{ 
    GetInformation = new GetInformationType 
    { 
     Code = "abc", 
     Id = "123", 
     Item = new InfoItem 
     { 
     Itemid = "test", 
     ItemName = "testname" 
     }, 
     StartDate = new StartdatumType { Start = new DateTime(1990, 1, 1)}, 
     EndDate = new EndDateType { End = new DateTime.Now }  
    } 
}; 

나는 속성의 모두 선택 안 할 또는 개체가 null이다.

public InfoResponse getInfo(request) 
{ 
    // Check that the request object has no null properties or objects. 
} 

if 문을 사용하여 각 하위 개체 및 속성을 단계별로 처리하는 것보다 간단한 방법이 있습니까? 재귀 적 방법 또는 이와 비슷한 것?

I는 다음과 같이 작성해야하고 싶지 않아 내 된 getInfo 함수에서
확장 :

if (request != null && request.GetInformation != null && ... etc.) 
+2

이 ... 당신이 조금 더 정교한 수 있습니다 시작하는 것입니다? –

답변

1

리플렉션을 사용하고 모든 속성을 반복하여 null을 확인하십시오. 여기에 조각 당신이에 붙어있는 곳 흠, 당신은 재귀 적으로 각각의 자식 객체와 속성을 통해 단계 수

using System.Reflection; 

GetInfoRequest objGetInfoRequest; 
Type getInfoRequestType = objGetInfoRequest.GetType(); 
PropertyInfo[] myProps = getInfoRequestType.GetProperties(); 
0

당신이 필드를 통해 반복하는 reflection를 사용할 수 있습니다.

중첩 된 값에 대한 재귀가 필요합니다.

관련 문제