如何用通用泛型方法遍历复杂结构对象的所有属性值?
例如public ClassA
{
private IList<ClassB> _field1;
private string _field2;
public IList<ClassB> Field1{get;set;}
public string Field2{get;set;}
....
}
public ClassB
{
private string _f;
public F{set;get;}
}
假设 已经封装好一个 IList<ClassA>
如何用泛型方法 遍历出这个泛型集合所有属性值,主要是Field1 的所有属性值:如F
现在方式是,用
public static string SerializeList<T>(IList<T> objList)
{
if (objList == null || objList.Count <= 0)
return null;
System.Reflection.PropertyInfo[] mPi = typeof(T).GetProperties();
string strName = "", strValue = "";
string strName1 = "", strValue1 = "";
foreach (T t in objList)
{
if (t == null)
continue;
for (int i = 0; i < mPi.Length; i++)
{
System.Reflection.PropertyInfo pi = mPi[i];
strName = pi.Name.Replace("_", "");
strValue = pi.GetValue(t, null) == null ? string.Empty : pi.GetValue(t, null).ToString();
if (pi.PropertyType.IsGenericType)
{
此处如何获取我需要的泛型对象,然后遍历出内部值
}
}
}
}
补充:由于要实现通用方法来遍历,所以用泛型方法.
各位有什么高见,小弟不胜感激