日期:2014-05-17  浏览次数:20973 次

C# 运用反射遍历类中所有属性和其值,遇到泛型时怎么办?
我在遍历的时候,如果遇到某个泛型,如List<T>,或者Dictionary<TKey,TValue>等不确定类型时,我应该怎么去获取他们所有的值呢?求大神指教。
c# 遍历泛型

------解决方案--------------------
Test t = new Test();
var list = t.GetType().GetProperty("list").GetValue(t, null);
foreach (object o in (list as IEnumerable))
{
    Console.WriteLine(o);
}
------解决方案--------------------

Test t = new Test();
            var list = t.GetType().GetProperty("dictionary").GetValue(t, null);
            foreach (object o in (list as IEnumerable))
            {
                var itemKey = o.GetType().GetProperty("Key").GetValue(o, null);
                Console.WriteLine(itemKey);

                var itemValue = o.GetType().GetProperty("Value").GetValue(o, null);
                foreach (object subItem in (itemValue as IEnumerable))
                    Console.WriteLine(subItem);
            }