我有兩個類都從相同的接口繼承。 我希望有時使用一個類運行網站,有時使用另一個。 想根據配置值決定使用哪一個。 我可以使用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