我有以下類,它有兩個嵌套類;我如何迭代嵌套類並將對象傳遞給我的函數
public class Request
{
public Hotel Hotel {get;set;}
public Room Room {get;set;}
}
的嵌套類
public class Hotel
{
public int HotelId {get;set;}
public string Name {get;set;}
public string Address {get;set;}
public string CountryCode {get;set;}
}
和
public class Room
{
public int RoomId {get;set;}
public string Name {get;set;}
}
基本上我可以精細創建我的對象;
Request oRequest = new Request();
我想要做的是能夠通過類來迭代找到任何嵌套類,並通過這些給一個函數像
Type t = oBookingRequest.GetType();
foreach (PropertyInfo pi in t.GetProperties())
{
CallMyFunction(pi);
}
我有打電話CallMyFunction時的問題(PI )我實際上無法查看類屬性值,就好像我沒有將pi傳遞爲實際對象一樣?我是否正確地做這件事,因爲如果我調用函數CallMyFunction(oRequest.Hotel),它可以正常工作。
編輯:
功能CallMyFunction是使用的ValidationResult一個ValidationContext功能,所以我需要通過包含所有屬性的實際的對象,而不是每個單獨的屬性值。該功能CallMyFunction是
private List<ValidationResult> CallMyFunction (object oObject)
{
var context = new ValidationContext(oObject, serviceProvider: null, items: null);
var results = new List<ValidationResult>();
Validator.TryValidateObject(oObject, context, results, false);
return results;
}
你什麼意思,你不能獲取類數據?你的意思是財產價值?你也編寫'嵌套類',但你只顯示兩個屬性。這些類是否真的在Request類中定義? –
對不起我的意思是屬性值 – Tommassiov
向我們展示了'CallMyFunction'的定義。 –