ala*_*irs 11 asp.net asp.net-mvc dependency-injection ninject ninject-2
我有一个ASP.NET MVC Web应用程序,它实现了自定义成员资格提供程序.自定义成员资格提供程序使用UserRepository
其构造函数,该构造函数提供成员资格提供程序和NHibernate之间的接口.它UserRepository
由Ninject IoC容器提供.
但是,显然,当.NET实例化提供程序时,这不起作用:无参数构造函数没有UserRepository而无法创建一个(UserRepository需要将NHibernate会话传递给它的构造函数),这意味着提供者无法访问其数据存储.如何解决对象依赖?
值得注意的是,这是一个已经使用Ninject进行改造的现有应用程序.以前我使用无参数构造函数,它们能够与参数化构造函数一起创建所需的依赖项,以帮助进行单元测试.
有什么想法,还是我把自己建在一个角落里?
来自Michael B.的正确答案:依赖注入和ASP.Net成员提供商
您可以通过以下方式获取存储库(或服务)注入:
public IRepository Repository { get { return DependencyResolver.Current.GetService(IRepository ); } }
Run Code Online (Sandbox Code Playgroud)