如何使用c#中的反射讀取包含數組類型元素的對象的屬性。如果我有一個名爲GetMyProperties的方法,並且我確定該對象是一個自定義類型,那麼我該如何讀取一個數組的屬性和其中的值。 IsCustomType是確定類型是否爲自定義類型的方法。使用包含另一個對象數組的對象的反射讀取屬性
public void GetMyProperties(object obj)
{
foreach (PropertyInfo pinfo in obj.GetType().GetProperties())
{
if (!Helper.IsCustomType(pinfo.PropertyType))
{
string s = pinfo.GetValue(obj, null).ToString();
propArray.Add(s);
}
else
{
object o = pinfo.GetValue(obj, null);
GetMyProperties(o);
}
}
}
的情況是,我有ArrayClass的對象,並ArrayClass有兩個屬性:
-string Id
-DeptArray[] depts
DeptArray是另一個類與2個屬性:
-string code
-string value
所以,這個方法得到ArrayClass的一個對象。我想要讀取所有屬性從上到下並將名稱/值對存儲在字典/列表項中。我能夠做到價值,自定義,枚舉類型。我被對象數組卡住了。不知道該怎麼做。
嗨,我沒有看到你的代碼,你試圖實現。 該代碼不會編譯,因爲pInfo.GetValue返回一個對象,而不是一個字符串。 – Adam 2011-02-02 20:05:36
對不起。我編輯了代碼以將ToString()添加到pInfo.GetValue()。我不得不做出這個方法。該方法最初有一些複雜的邏輯。爲了簡化,我需要閱讀所有屬性,屬性的屬性和它們的值。 – 2011-02-02 20:12:43