C# 在设计时不知道类名的情况下创建对象
使用反射,我需要调查一个用户DLL并在其中创建一个类的对象C# 在设计时不知道类名的情况下创建对象,c#,reflection,C#,Reflection,使用反射,我需要调查一个用户DLL并在其中创建一个类的对象 做这件事的简单方法是什么?试试看 您可以使用Activator.CreateInstance从类型对象创建类的实例,以获取dll中的所有类型,您可以使用Assembly。GetTypes查看以下链接: 您基本上使用反射来加载程序集,然后查找您感兴趣的类型。一旦你有了类型,你可以要求找到它的构造函数或其他方法/属性。一旦拥有了构造函数,就可以调用它。轻松点 System.Reflection.Assembly是您想要使用的类。它包含许
做这件事的简单方法是什么?试试看 您可以使用Activator.CreateInstance从类型对象创建类的实例,以获取dll中的所有类型,您可以使用Assembly。GetTypes查看以下链接:
您基本上使用反射来加载程序集,然后查找您感兴趣的类型。一旦你有了类型,你可以要求找到它的构造函数或其他方法/属性。一旦拥有了构造函数,就可以调用它。轻松点
System.Reflection.Assembly是您想要使用的类。它包含许多方法,用于迭代用户DLL中包含的类型。您可以遍历每个类,也许可以查看它是否继承自特定接口等
调查获取类型列表的Assembly.GetTypes()
方法,或仅对公共类型调查Assembly.GetExportedTypes()
。如前所述,您需要插入System.Reflection命名空间
如果预先知道要加载的DLL的位置/名称,则需要遍历Assembly.GetTypes()
在伪代码中,它看起来像这样:
创建和组装对象
遍历程序集中包含的所有类型
找到要查找的对象后,调用它(CreateInstance)
明智地使用它
)()
如果你想四处看看的话,我有很多反射代码,但是任务非常简单,至少有十几篇文章都有示例。(又名谷歌)。
尽管如此,MSDN还是您的朋友,供您参考