Mik*_*ike 2 c# reflection list
我有一个C#方法,需要将各种列表传递到其中。列表的类型经常会不同。该方法本身位于不同的dll中,并且不知道列表中包含的类对象(无引用,无using语句)。该方法需要读取列表中每个项目的每个成员,然后基于该列表构建并返回一个字符串。
我的问题是如何在编译时/运行时获取这些各种对象的元数据?反射会这样做吗?
另外,一旦获得元数据,如何使用它实际使用变量?
谢谢
编辑:目前,我正在使用它,如下所示:
public string GetData(List<User> list){
//...
List<RowData> rows = new List<RowData>();
foreach (User item in list)
{
RowData row = new RowData();
row.id = count++;
row.cell = new string[3];
row.cell[0] = item.ID.ToString();
row.cell[1] = item.name;
row.cell[2] = item.age.ToString();
rows.Add(row);
}
//...
return new JavaScriptSerializer().Serialize(rows.ToArray());
Run Code Online (Sandbox Code Playgroud)
现在,这是非常具体的。我想将其替换为泛型,这样我就可以传递“用户”以外的项目
如果参数(list出于讨论目的将其调用)进入该方法,List<T>则可以执行以下操作:
Type type = list.GetType().GetGenericArguments()[0];
Run Code Online (Sandbox Code Playgroud)
如果您只有泛型T类,则可以始终使用以下类:
Type typeParameterType = typeof(T);
Run Code Online (Sandbox Code Playgroud)