我正在编写一个插件系统:每个插件都在自己的程序集中,必须由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