反射从 DLL 中的所有类型中获取值
本文关键字:类型 获取 DLL 反射 | 更新日期: 2023-09-27 18:33:01
我正在尝试加载一个 DLL,并为每个类型显示属性名称和值。我有以下代码,它抛出一个System.Reflection.TargetException,并显示消息"对象与目标类型不匹配"。
var DLL = Assembly.LoadFrom(PathToDLL);
foreach (Type type in DLL.GetTypes())
{
foreach (PropertyInfo property in type.GetProperties())
{
lstProperties.Items.Add(string.Format("{0} - {1}", property.Name, property.GetValue(DLL, null)));
}
}
我尝试在 GetValue() 调用中使用类型、DLL 和 null,我做错了什么?
我正在测试的 DLL 有一个属性:
public string TheValue{ get; set; }
谢谢大家。
扩展评论,这是他们正在谈论的内容的一个例子。
在 DLL 中:
public class TheClass
{
public string TheValue { get; set; }
}
创建类的实例并设置属性值:
TheClass cls = new TheClass();
cls.TheValue = "hello!";
然后更改代码以引用您创建的实例:
lstProperties.Add(string.Format("{0} - {1}", property.Name, property.GetValue(cls, null)));