当前位置: 首页 > 编程语言 > C#

在设计时在不知道类名的情况下创建对象分享

时间:2023-04-10 11:52:48 C#

在设计时在不知道类名的情况下创建对象使用反射,我需要调查用户DLL并在其中创建类的对象。这样做的简单方法是什么?尝试Activator.CreateInstance。System.Reflection.Assembly是您要使用的类。它包含许多用于迭代用户DLL包含的类型的方法。您可以遍历每个类,也许可以查看它是否继承自特定接口等。http://msdn.microsoft.com/en-us/library/system.reflection.assembly_members.aspx研究Assembly.GetTypes()方法用于获取类型列表,或仅用于公共类型的Assembly.GetExportedTypes()。您可以使用Activator.CreateInstance从Type对象创建一个类的实例,以获取dll中的所有类型,您可以使用Assembly.GetTypes查看这些链接:http://www.java2s.com/Code/CSharp/Development-Class/Createanobjectusingreflection.htmhttp://msdn.microsoft.com/en-us/library/k3a58006.aspx你基本上使用反射加载程序集,然后找到你感兴趣的类型。一旦你有了类型,您可以要求找到它的构造函数或其他方法/属性。一旦有了构造函数,就可以调用它。简单的!如前所述,您需要仔细研究System.Reflection命名空间。如果事先知道要加载的DLL的位置/名称,则需要循环访问Assembly.GetTypes()。在伪代码中它看起来像这样:对象被创建和组装。遍历程序集中包含的所有类型。一旦找到您正在寻找的对象,就调用它(CreateInstance)...明智地使用它。;)如果你想四处看看,我有很多反射代码,但任务很简单,至少有十几篇文章在野外有样本。(又名谷歌)。不过,MSDN是您在ReflectionReference中的朋友。以上是C#学习教程:设计时不知道类名创建对象分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: