Creating an object without knowing the class name at design time使用反射,我需要研究用户DLL并在其中创建类的对象。 简单的做法是什么? 尝试使用Activator.CreateInstance。
http://msdn.microsoft.com/zh-CN/library/system.reflection.assembly_members.aspx
研究 正如已经说过的那样,您需要戳System.Reflection命名空间。 如果事先知道要加载的DLL的位置/名称,则需要遍历Assembly.GetTypes()。 在伪代码中,它看起来像这样: 创建和组装对象。 遍历程序集中包含的所有类型。 找到所需的对象后,调用它(CreateInstance)… 明智地使用它。 ;)
如果您想四处浏览,我有很多反射代码,但是任务确实很简单,至少有十几篇文章带有示例。 (又名Google)。 看一下这些链接: http://www.java2s.com/Code/CSharp/Development-Class/Createanobjectusingreflection.htm http://msdn.microsoft.com/zh-CN/library/k3a58006.aspx 您基本上可以使用反射来加载程序集,然后找到您感兴趣的类型。一旦有了该类型,就可以要求找到它的构造函数或其他方法/属性。一旦有了构造函数,就可以调用它。简单! 您可以使用Activator.CreateInstance从Type对象创建类的实例,要获取dll中的所有类型,可以使用Assembly.GetTypes |