关于网友提出的“ 通过反射得到实体类,然后通过反射得到成员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