我在项目中使用Autofac
我有不同类型的提供程序,如数据或日志记录等。这些提供程序在web.config部分中设置,我有每个部分的默认提供程序。所以我的问题是如何使用autofac加载我的提供程序dynamic.shoud我重构并更改了我的提供程序实现吗?
答案 0 :(得分:1)
提供者模式实际上是一个专注的IoC实现。因为它有自己的外观和配置模型,所以很难通过Autofac或任何其他DI容器来控制生活方式。
您可以做和应该做的是阻止应用程序直接调用提供程序的外观(例如ASP.NET成员资格提供程序模型的静态Membership
类)。而是在Autofac中注册提供程序(即成员模型的MembershipProvider
基类)并将其注入应用程序。例如:
builder.Register<MembershipProvider>(c => Membership.Provider);