我正在編寫一個插件系統:每個插件都在自己的程序集中,必須由autofac加載,並由具有設置插件類型的參數的屬性進行簽名。我將能夠在我的asp.net mvc應用程序中按類型解析插件,我該怎麼做?每個插件都由一個抽象類插入並覆蓋預定義的方法。Autofac - 按類型註冊插件
1
A
回答
2
RegisterAssemblyTypes()
可能是起點,你以後:
Assembly[] assembliesWithPlugins = // find these somehow
var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(assembliesWithPlugins)
.AssignableTo<MyAbstractPluginType>()
.WithMetadata(t => GetPluinTypeFromMyAttribute(t));
一旦你註冊你的插件這種方式,Autofac的元數據支持,您就可以使用它們(http://code.google.com/p/autofac/wiki/Metadata)。我從你後來的一些問題中推測你已經走上了這條道路。
祝你好運。 尼克
1
我個人會使用MEF這個和使用Autofac's MEF integration。
0
在每個插件程序集中創建一個Autofac.Module。在那裏註冊你的插件,並從主應用程序加載你的插件DLL,尋找模塊,在容器中註冊。 然後解決並玩得開心;)。
相關問題
- 1. Autofac - 註冊插件
- 2. 註冊類型有條件地在Autofac
- 3. 嚴重註冊泛型類型Autofac
- 4. 使用Autofac註冊Generic類型
- 5. Autofac未解析註冊類型
- 6. AutoFac - WebApi不能註冊反射類型
- 7. Autofac房產注射型後註冊
- 8. 在Autofac中註冊事件
- 9. 註冊類型由基本類型和解決與Autofac
- 10. 使用Autofac注入註冊類
- 11. 使用AutoFac使用泛型複雜類型註冊泛型
- 12. Autofac - DelegatingHandler(HttpMessageHandler)註冊
- 13. Autofac通用註冊
- 14. 用Autofac註冊HttpContext.User
- 15. Autofac註冊問題
- 16. 註冊局部打開泛型與Autofac
- 17. 如何註冊這些類在Autofac
- 18. 註冊文件類型
- 19. Autofac - 註冊以接口爲參數的實例類型
- 20. Autofac:從模塊重寫註冊目標類型
- 21. 如何獲得所有已註冊的服務類型Autofac
- 22. Autofac - 掃描和批量註冊通用類型
- 23. Autofac註冊和解析類型實現通用interace
- 24. 在Autofac中爲同一類型選擇多個註冊
- 25. Autofac測試所有註冊類型都可以解決
- 26. 我可以在Autofac中註冊我的模塊類型嗎?
- 27. Autofac:參數取決於ApiController的屬性的註冊類型
- 28. Autofac枚舉不與類型多個註冊或模塊
- 29. 適用於所有類型的通用Autofac容器註冊
- 30. 註冊使用之前註冊的類型
你爲什麼要使用mef?我不知道我是否錯了,但我可以使用autofac元數據或可能命名/鍵控功能? – Stefano 2010-10-30 22:29:48
兩者都是有效的方法 - 如果您的插件將由第三方開發人員編寫,那麼MEF將提供.NET標準機制來定義它們。 – 2010-11-05 01:25:37
對不起,我的假設是,插件將是第三方:) – 2010-11-05 04:56:07