使用 Autofac 动态加载提供程序

发布于 2024-11-17 06:32:15 字数 154 浏览 4 评论 0原文

我在我的项目中使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

污味仙女 2024-11-24 06:32:15

事实上,提供者模式本身就是一个集中的 IoC 实现。因为它有自己的外观和配置模型,所以很难通过 Autofac 或任何其他 DI 容器来控制生活方式。

您可以而且应该做的是防止应用程序直接调用提供程序的外观(例如 ASP.NET 成员资格提供程序模型的静态 Membership 类)。而是在 Autofac 中注册提供程序(即会员模型中的 MembershipProvider 基类)并将其注入到应用程序中。例如:

builder.Register<MembershipProvider>(c => Membership.Provider);

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:

builder.Register<MembershipProvider>(c => Membership.Provider);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文