您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> 通过反射得到实体类,然后通过反射得到成员List类实体属性的值

通过反射得到实体类,然后通过反射得到成员List类实体属性的值

来源:网络整理     时间:2016/8/11 20:19:00     关键词:

关于网友提出的“ 通过反射得到实体类,然后通过反射得到成员List类实体属性的值”问题疑问,本网通过在网上对“ 通过反射得到实体类,然后通过反射得到成员List类实体属性的值”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 通过反射得到实体类,然后通过反射得到成员List类实体属性的值
描述:

public class TestData1
    {
        private static List listData = new List();
        static TestData1()
        {
            listData.Add(new TestDataModel() { Id = 1, Name = "test1", Value = 1.1m, UpdateTime = DateTime.Now });
            listData.Add(new TestDataModel() { Id = 2, Name = "test2", Value = 1.2m, UpdateTime = DateTime.Now.AddSeconds(2) });
            listData.Add(new TestDataModel() { Id = 3, Name = "test3", Value = 1.3m, UpdateTime = DateTime.Now.AddSeconds(3) });
            listData.Add(new TestDataModel() { Id = 4, Name = "test4", Value = 1.4m, UpdateTime = DateTime.Now.AddSeconds(4) });
        }
        public static List GetAll()
        {
            return listData;
        }
    }
    public class TestDataModel
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public decimal Value { get; set; }
        public DateTime UpdateTime { get; set; }
    }

// 代码如上,
只知道,TestDataModel,TestData1这两个类型,但是并不知道,类中哪个类是什么,因为这里举例,只写了两个类,可能有很多类。

    public class MonitorManager
    {
        private static List monitorType = new List();
        public static void AddType(Type type)
        {
            monitorType.Add(type);
        }
        public static TreeNode ReadTree(string title)
        {
            List typeList = new List();
            foreach (var type in monitorType)
            {
                typeList.Add(type.FullName);
            }
            TreeNode root = new TreeNode(title);
            foreach (var type in monitorType)
            {
                FieldInfo[] fields = type.GetFields(BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Public | BindingFlags.GetField);
                foreach (FieldInfo f in fields)
                {
                    var data = f.GetValue(null);
                    string typeName = data.GetType().FullName;
                    TreeNode node = new TreeNode(f.Name);
                   // ...省略部分判断逻辑 ..
                    else if (typeName.StartsWith("System.Collections.Generic.List`1[["))
                    {
                        foreach (var item in typeList)
                        {
                            if (typeList.Exists(p => typeName.StartsWith("System.Collections.Generic.List`1[[" + p)))
                            {
                                Type t = Type.GetType(item, true, true);
                                // 这里希望得到集合中所有元素的值。  
                                // 某对象集合
                                //TreeNode itemNode = new TreeNode(m.ToString());
                                //node.Nodes.Add(item);
                            }
                        }
                    }
                    root.Nodes.Add(node);
                }
            }
            return root;
        }

以上介绍了“ 通过反射得到实体类,然后通过反射得到成员List类实体属性的值”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3213069.html

相关图片

相关文章