3
我必須將一個或多個通用對象轉換爲NameValueCollection。我正在嘗試使用反射。儘管我可以獲取父屬性,但我無法獲取作爲對象的父屬性的屬性。將對象轉換爲NameValueCollection
Class One
public string name{get;set}
Class Two
public string desc{get;set}
public One OneName{get;set;}
public static NameValueCollection GetPropertyName(
string objType, object objectItem)
{
Type type = Type.GetType(objType);
PropertyInfo[] propertyInfos = type.GetProperties();
NameValueCollection propNames = new NameValueCollection();
foreach (PropertyInfo propertyInfo in objectItem.GetType().GetProperties())
{
if (propertyInfo.CanRead)
{
var pName = propertyInfo.Name;
var pValue = propertyInfo.GetValue(objectItem, null);
if (pValue != null)
{
propNames.Add(pName, pValue.ToString());
}
}
}
return propNames;
}
我認爲必須有一些遞歸調用,但不知道如何去做。任何幫助表示讚賞。
'objType'是'objectItem'的類型嗎?如果是這樣,你可以刪除該參數。你還創建了一個你不使用的'propertyInfos'變量。 – ThatMatthew 2012-03-28 20:23:57
我現在可以正確使用此代碼 – 2012-05-19 11:30:23