asp.net - 使用自定义成员资格提供程序进行依赖注入(inject)

标签 asp.net asp.net-mvc dependency-injection ninject ninject-2

我有一个实现自定义成员资格提供程序的 ASP.NET MVC Web 应用程序。自定义成员资格提供程序采用 UserRepository到它的构造函数,该构造函数提供成员资格提供程序和 NHibernate 之间的接口(interface)。 UserRepository由 Ninject IoC 容器提供。

但是,显然,当提供程序由 .NET 实例化时,这不起作用:无参数构造函数没有 UserRepository 并且无法创建一个(UserRepository 需要将 NHibernate session 传递给它的构造函数),这意味着提供程序无法访问其数据存储。如何解决我的对象依赖性?

可能值得注意的是,这是一个使用 Ninject 改造的现有应用程序。以前,我使用无参数构造函数,它们能够与有参数构造函数一起创建所需的依赖项来协助单元测试。

有什么想法,还是我在这里把自己建在一个角落里?

最佳答案

Michael B. 的正确答案来自:Dependency injection and ASP.Net Membership Providers

您可以通过以下方式获取您的存储库(或服务)注入(inject):

public IRepository Repository { get { return DependencyResolver.Current.GetService(IRepository ); } }

关于asp.net - 使用自定义成员资格提供程序进行依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2753424/

相关文章:

javascript - 序列化javascript对象并反序列化它

C# Linq 到 SQL :cannot add an entity that already exists

c# - 将列表从 View 传递到模型中的 Controller

c# - 如何在 .net 属性上注入(inject)属性依赖项?

c# - Autofac 在深层解析

asp.net - Wcf ThreadPool和异步

asp.net - CreateUserWizard 忽略 .MoveTo

c# - 如何将现有项目推到列表末尾?

javascript - 服务器和浏览器日期差异

c# - 使用 Unity 改变构造函数注入(inject)的字符串参数