反射从 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 中的所有类型中获取值

扩展评论,这是他们正在谈论的内容的一个例子。

在 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)));