【发布时间】:2012-01-11 08:59:24
【问题描述】:
这类似于Dependency Injection with Custom Membership Provider,但那里的回复并没有解决我的问题。
我有一个自定义成员资格提供程序,它依赖于存储库类。 ASP.NET 将始终使用无参数构造函数来实例化它,因此为了解决对存储库的依赖关系,我有一种服务定位器方法......我的 ctor 看起来像这样:
public CustomMembershipProvider()
{
_userRepository = AppStart_NinjectMVC3.Resolve<IUserRepository>();
}
Resolve 方法看起来像这样..
public static T Resolve<T>() where T : class
{
return _kernel.Get<T>();
}
当我运行 Web 应用程序时,这可以正常工作,因为 _kernel 已正确设置。但是,我需要在成员资格提供程序上测试这些方法。因此,当我的测试代码尝试调用成员资格提供程序上的方法时,它将使用无参数 ctor 实例化一个新的成员资格提供程序类,因为未设置 _kernel 会出错。
我想做的是以某种方式注入我的 FakeUserRepository 类,但我该如何实现呢?
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-membership ninject