我有一个接收对象列表的方法:
private void escribe(List<object> lista)
先验我不知道它们是什么类,我想在运行时知道列表中每个对象的属性。
我尝试过:
Type type = lista.GetType();
var PropertyInfos = lista.GetType().GetProperties();
我也尝试过:
Type tip = lista.GetType();
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>))
{
var itemType = type.GetGenericArguments()[0];
}
但我无法检索相关对象的属性。问候并感谢您的帮助。
编辑:我添加了我测试的类的信息,虽然我真的希望它对每个人都有效。
public class Prueba
{
string prop1;
int prop2;
bool prop3;
float prop4;
//List<string> prop5;
object prop6;}
并且所有这些字段都转换为首字母大写的属性
您遇到的问题是您正在访问的属性,
List<object>
并且我想想象的是您需要访问对象本身的属性。如果是这样,您必须通过它们并获取特定对象的类型,而不是列表中的类型
您遇到的问题是您正在获取 the 的类型(当您想要获取该列表中的类型时,
List
它始终是 type ,以获取其属性。List
object
让我们想象一下这个例子。我们有一个测试类:
现在我们定义您的列表
List<object>
并添加一个类型的对象Ejemplo
:请注意,我使用
First
访问列表的第一个元素,并从中获取类型,然后是其属性。