回答
您可以使用Activator.CreateInstance,得到一个dll中的所有类型,你可以使用Assembly.GetTypes
在这些链接看看一个从类型对象类的实例:
http://www.java2s.com/Code/CSharp/Development-Class/Createanobjectusingreflection.htm
http://msdn.microsoft.com/en-us/library/k3a58006.aspx
你基本上使用反射来加载程序集,然后找到一种你感兴趣的问题。一旦你的类型,你可以问找到它的构造函数或其他满足点头/属性。一旦你有了构造函数,你就可以调用它。简单!
System.Reflection.Assembly
是您希望使用的类。它包含许多用于遍历包含在用户DLL中的类型的方法。您可以通过每个类遍历,也许看它是否从一个特定的接口等
http://msdn.microsoft.com/en-us/library/system.reflection.assembly_members.aspx
继承调查Assembly.GetTypes()
方法获得的类型只有公立列表,或Assembly.GetExportedTypes()
。
正如已经说过的,你需要戳一下System.Reflection命名空间。
如果您事先知道要加载的DLL的位置/名称,则需要遍历Assembly.GetTypes()。
在伪代码中,它看起来像这样:
创建和装配对象。
遍历程序集中包含的所有类型。
一旦你找到你所寻找的,调用它(的CreateInstance)的一个...
使用它明智。
;)
我有足够的反射代码,如果你想看看周围,但任务很简单,并在野外至少有文章一打的样品在那里。 (又名谷歌)。 尽管如此,MSDN是您的反射参考的朋友。
- 1. 知道对象的类名时创建对象的问题
- 2. 创建一个只知道类名的对象?
- 3. 在知道C#中部分类名时动态创建对象
- 4. 如何在事先不知道计数时创建对象
- 5. Excel VBA:在不知道对象类型时通过名称引用对象
- 6. 类设计 - 从字符串数据创建一个对象?
- 7. 重写超类如何知道方法而不创建对象
- 8. 知道一个对象C#
- 9. DDD对象创建设计
- 10. 从轨道中的另一个对象创建一个对象
- 11. 在一个对象中创建一个对象类
- 12. 如何在仅在运行时知道类型的情况下创建对象?
- 13. 在VB.Net使用匿名对象类型创建一个通用类对象
- 14. 以不同方式从另一个对象创建对象的设计模式
- 15. 初学者C++:在运行时创建对象而不知道要创建多少对象
- 16. 如何知道何时创建和销毁临时对象?
- 17. 有什么方法可以知道什么时候创建了一个对象?
- 18. 当我知道字符偏移量时,如何创建一个范围对象?
- 19. 在对象创建时/创建对象后设置Parse.Object.relation
- 20. 设计 - 有时一个对象是 - 一个,有时它不是
- 21. 从一个匿名对象动态创建一个对象
- 22. 知道何时通过创建子类创建类的实例?
- 23. 转换一个对象到一个泛型类不知道类型
- 24. 如何知道对象表的对象类型名称? (Oracle)的
- 25. 对象创建不命名
- 26. 无法创建一个匿名对象
- 27. 我不能创建一个MPMoviePlayerController类型的对象 - 未知类型
- 28. 如何使用单个属性创建一个对象,其名称直到运行时才能知道
- 29. 创建一个未知类型的对象
- 30. 创建一个未知类型的对象的实例和TryUpdateModel