我有两个类都从相同的接口继承。 我希望有时使用一个类运行网站,有时使用另一个。 想根据配置值决定使用哪一个。 我可以使用web.config来决定从哪个类创建当前实例吗?我可以基于web.config中的值实例化一个类型吗?
回答
是的。
创建一个工厂方法,返回IMyInterface
类型的对象。传入配置值作为参数以确定要创建哪个具体对象。
这是正确的想法,这将帮助我。 – 2009-09-11 03:05:32
确实可以。您感兴趣的是Type
的字段AssemblyQualifiedName
。因此,让你的类型,做:
myObj.GetType().AssemblyQualifiedName
而这样做的结果写入到您的配置:
<add key="TypeName" Value="...." />
然后,你需要考虑一下它的构造了,并且它可以被加载像所以:
Type.GetType("...").GetConstructor(...).Invoke(...);
顺便说一句,那downvote不是我... – 2009-09-11 03:06:19
没有忧虑米奇,我猜这是OP给他的评论给你:) – 2009-09-11 03:07:12
投票,因为它可能是正确的答案,取决于原来的问题是如何解释 – 2009-09-11 03:07:28
- 1. 如何基于Castle Windsor的web.config文件实例化一个类?
- 2. 我可以指定一个类实例可以转换为某种类型吗?
- 3. 可以通过AutomationId值实例化AutomationElement类型吗?
- 4. 我可以在实例化一个匿名类时实现一个接口吗?
- 5. 类可以实例化另一个类吗? (PHP)
- 6. 基于属性设置值实例化一个类
- 7. 我可以使用基类的实例初始化派生类吗?
- 8. 我可以在Google App Engine上实例化2个memcache类吗?
- 9. 在PHP 5中,我可以动态地实例化一个类吗?
- 10. 泛型 - 我可以写一个基于变量的T吗?
- 11. 如果我没有编写用于实例化对象的类,我可以序列化一个对象吗?
- 12. 基于PHP中的字符串动态实例化一个类
- 13. 我可以在JavaScript中动态地将一个类的实例转换为另一个类的实例吗?
- 14. 你可以在另一个项目中实例化一个类吗?
- 15. 我可以限制哪些类可以实例化另一个类?
- 16. ASP.MVC中的Getter和Setter可以实例化一个对象吗?
- 17. 可以反思性地实例化java中的泛型类型吗?
- 18. 一个类型的实例化Monoid
- 19. 基于字段的类型(例如TextControl,TextareaControl),可以使用机械化来选择一个表单吗?
- 20. 一个静态类可以在单个进程中多次实例化吗?
- 21. 我可以序列化一个C#类型对象吗?
- 22. 我可以阻止实例化非模板类吗?
- 23. 你可以返回一个基于泛型类型的函数吗?
- 24. 您可以在Windsor容器中注册一个类型的现有实例吗?
- 25. 实例化一个泛型类(JAVA)
- 26. 实例化一个COM和ATL类型
- 27. PHP - 我可以创建一个不能通过另一个类实例化的类吗?
- 28. 我可以定义一个对类类型和类实例都可用的属性吗?
- 29. 我可以实例化我的活动...我应该吗?
- 30. 我可以通过其子类的实例访问基类的虚方法吗?
问题标题和问题不太匹配.... – 2009-09-11 03:00:51
...你想显式地加载包含specfic类型的程序集,或者仅仅能够在运行时改变一个具体类型? – 2009-09-11 03:01:41
也许,“我可以基于web.config中的值实例化一个类型吗?” – 2009-09-11 03:09:36