【发布时间】:2023-03-30 06:33:01
【问题描述】:
我将 Autofac 与 ASP.NET MVC 一起使用,因此我的所有控制器都很好地解决了它们的依赖关系。但是我有一个具有两个依赖项的自定义成员资格提供程序。我怀疑实例化成员资格提供程序的代码在 ASP.NET 中很深,远离 Autofac。
有没有办法让 Autofac 解决我的自定义会员提供程序?
我假设调用类似 .Resolve
这是会员提供者及其构造函数:
public class MongoDBMembershipProvider : MembershipProvider
{
private IEmailService m_oEmailService;
private IUserRepository m_oUsers;
public MongoDBMembershipProvider() {
}
public MongoDBMembershipProvider( IEmailService oEmailservice, IUserRepository oUserRepository) {
m_oEmailService = oEmailservice;
m_oUsers = oUserRepository;
}
public override void Initialize( string name, NameValueCollection config) {
//TODO: Let Autofac do this work... how?
m_oEmailService = new EmailService();
m_oUsers = new Users();
}
public override bool ValidateUser( string sUsername, string sPassword) {
return m_oUsers.ValidateAttemptedLogon( sUsername, sPassword);
}
public override string GetUserNameByEmail( string sEmailAddress) {
return m_oUsers.GetUsernameByEmail( sEmailAddress);
}
}
【问题讨论】:
-
为什么你的默认构造函数不初始化 emailservice 和 users 类?
标签: asp.net-mvc asp.net-membership ioc-container autofac