我有兩個類都從相同的接口繼承。 我希望有時使用一個類運行網站,有時使用另一個。 想根據配置值決定使用哪一個。 我可以使用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. 在Java中,我可以創建「基於」超類實例的子類實例嗎?
- 3. 我可以指定一個類實例可以轉換爲某種類型嗎?
- 4. 可以通過AutomationId值實例化AutomationElement類型嗎?
- 5. 我可以在實例化一個匿名類時實現一個接口嗎?
- 6. 實例化一個知道通用基類的泛型類型
- 7. 類可以實例化另一個類嗎? (PHP)
- 8. Python:一個類實例可以評估爲任何類型嗎?
- 9. 我可以使用基類的實例初始化派生類嗎?
- 10. 基於屬性設置值實例化一個類
- 11. 我可以在Google App Engine上實例化2個memcache類嗎?
- 12. 我可以實例化一個指定的無狀態bean嗎?
- 13. 如何基於Java中的類參數實例化泛型類
- 14. 實例化一個基於PHP中的參數的類
- 15. 在PHP 5中,我可以動態地實例化一個類嗎?
- 16. 泛型 - 我可以寫一個基於變量的T嗎?
- 17. 我可以編程實例化一個指定的LocalDb實例嗎?
- 18. 你可以禁止本地實例化一個類嗎?
- 19. POJO和CDI bean可以從同一個類實例化嗎?
- 20. 如果我沒有編寫用於實例化對象的類,我可以序列化一個對象嗎?
- 21. 函數可以返回一個未知類型的泛型類的實例嗎?
- 22. 基於PHP中的字符串動態實例化一個類
- 23. 我可以創建一個內部靜態類的實例嗎?
- 24. 我可以實例化來自另一個Beanshell腳本的beanshell類嗎?
- 25. 我可以從連接的類名實例化一個對象嗎?
- 26. 我可以在JavaScript中動態地將一個類的實例轉換爲另一個類的實例嗎?
- 27. 你可以在另一個項目中實例化一個類嗎?
- 28. 實例化一個泛型類型
- 29. 我可以從實例化的類繼承嗎?
- 30. 我可以限制哪些類可以實例化另一個類?
問題標題和問題不太匹配.... – 2009-09-11 03:00:51
...你想顯式地加載包含specfic類型的程序集,或者僅僅能夠在運行時改變一個具體類型? – 2009-09-11 03:01:41
也許,「我可以基於web.config中的值實例化一個類型嗎?」 – 2009-09-11 03:09:36