使用 Autofac 动态加载提供程序
我在我的项目中使用 Autofac
我有不同类型的提供程序,例如 data 或logging 等。这些提供程序在 web.config 部分中设置,并且每个部分都有一个默认提供程序。所以我的问题是如何使用autofac 动态加载我的提供程序。我应该重构并更改我的提供程序实现吗?
I'm using Autofac in my project
I have different kind of providers such as data or logging , etc. thease providers are set in the web.config sections and I have a default provider for each section.so my question is how can I use autofac to load my providers dynamically.shoud I refactor and change my providers implementions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
事实上,提供者模式本身就是一个集中的 IoC 实现。因为它有自己的外观和配置模型,所以很难通过 Autofac 或任何其他 DI 容器来控制生活方式。
您可以而且应该做的是防止应用程序直接调用提供程序的外观(例如 ASP.NET 成员资格提供程序模型的静态
Membership
类)。而是在 Autofac 中注册提供程序(即会员模型中的MembershipProvider
基类)并将其注入到应用程序中。例如:The provider pattern is in fact a focussed IoC implemention by itself. Because it has a facade and a configuration model of its own, it makes it hard to control lifestyle by Autofac or any other DI container.
What you can and should do, is prevent the provider's facade (such as the static
Membership
class of the ASP.NET Membership provider model) to be called directly by the application. Instead register the provider (i.e.MembershipProvider
base class in case of the membership model) in Autofac and let it be injected into the application. For instance: