【发布时间】:2011-06-29 10:01:36
【问题描述】:
我有 ASP.NET MVC3 项目,我想在其中使用自定义成员资格提供程序。我也想使用 Unity 来解决我的依赖注入。
这是来自 Global.asax 的代码:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
var container = new UnityContainer();
container.RegisterType<IAuthentification, Authentification>();
container.RegisterType<IRepository, Repository>();
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
}
这是来自我的会员提供商的代码:
public class CustomMembershipProvider : MembershipProvider
{
[Dependency]
private IProveaRepository Repository { get; set; }
public override bool ValidateUser(string username, string password)
{
.....
}
问题是当我将断点设置为 ValidateUser 方法时,我看到 Repository 属性未初始化。但是这个结构:
[Dependency]
private IProveaRepository Repository { get; set; }
例如,在控制器中可以正常工作。
有人知道为什么会这样以及该怎么做吗?
【问题讨论】:
标签: asp.net-mvc-3 dependency-injection unity-container membership