2012-09-27 220 views
1

如果我有一個有其他嵌套對象和屬性的對象,如下所示。檢查對象中是否有空值

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語句?遞歸方法或類似的東西?

擴展
在我的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在田地裏進行迭代。

你很需要嵌套值的一些遞歸。