asp.net-mvc – 使用Ninject注册到自定义成员资格提供程序
|
我试图在MVC 3中使用ninject注入一个自定义成员资格提供商。 在MembershipProvider我已经尝试了以下: [Inject]
public ICustomerRepository _customerRepository{ get; set; }
和 [Inject]
public TUMembershipProvider(ICustomerRepository customerRepository)
{
_customerRepository = customerRepository;
}
在我的ninject模块中,我尝试了以下内容: Bind<MembershipProvider>().ToConstant(Membership.Provider); 以上都没有。 当我使用(在global.asa中) kernel.Inject(Membership.Provider); 和…一起 [Inject]
public ICustomerRepository _customerRepository{ get; set; }
它的工作原理,但是我没有生命周期管理,这将导致NHibernate的“ISession开放”错误,因为ISession是InRequestScope,而存储库不是。 解决方法您可以使用方法 @Remo Gloor outlines in his blog post on provider injection.它涉及3个步骤:>将[注入]添加到您需要注入的提供商上的任何属性(尽管他显示的模式 – 创建一个非常简单的类,其唯一的功能是容纳属性注入,并将任何请求转发到使用构造函数实现的实际类中注射 – 值得关注) public class MyMembershipProvider : SqlMembershipProvider
{
[Inject]
public SpecialUserProvider SpecialUserProvider { get;set;}
...
>创建一个初始化程序包装器,它实现IHttpModule,它提供提供者,触发它的创建: public class ProviderInitializationHttpModule : IHttpModule
{
public ProviderInitializationHttpModule(MembershipProvider membershipProvider)
{
}
...
>在注册服务中注册IHttpModule: kernel.Bind<IHttpModule>().To<ProviderInitializationHttpModule>(); >没有4;在启动过程中,Ninject执行其他操作 – 引导所有注册的IHttpModules,包括您添加的一个。 (不要忘记阅读博客帖子等等的评论) 最后,如果你正在寻找一个完全可以彻底解决这个问题的东西,请试试this @Remo Gloor answer instead 在整个混乱中,PS是一个伟大的写作是Provider is not a Pattern by @Mark Seemann.(和他的优秀的书籍 – Dependency injection in .NET,这将使你从第一原则舒适地弄清楚这个东西的oboligently插头) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何只允许mvc4 razor中的文本框中的数字
- asp.net-mvc-3 – AutoMapper线程问题(缺少类型映射配置或不
- asp.net-mvc – ASP.NET MVC做浏览器刷新让TempData无用吗?
- asp.net – 在另一个控件之前插入控件
- asp.net-mvc – asp.net mvc多语言urls /路由
- asp.net – 找不到可安装的ISAM. ‘/’应用程序中的服务器错
- asp.net-mvc – 带有asp.net mvc 4和EntityFramework的View
- asp.net-mvc-3 – 如何使用DropdownList助手正确创建MultiS
- asp.net – 我应该在服务层或控制器层发送电子邮件吗?
- asp.net-mvc – 在ASP.NET MVC中的NHibernate会话管理
- asp.net – Datareader,DataAdapter,Dataset,Dat
- asp.net-mvc-3 – 有没有办法通过html.actionlin
- 在ASP.NET Razor中格式化字符串
- asp.net-mvc – 使用带有剃刀的html选择框
- asp.net-mvc – ASP.NET MVC – 模型可以有业务逻
- 依赖性 – 安装RavenDb Embedded的Nuget依赖性错
- 配置 – ASP.NET Core Expose配置到DI注入服务
- 如何从ASP.NET MVC视图显示存储在数据库中的HTML
- asp.net-mvc – 带tab-id的RedirectToAction()
- asp.net-core – 使用asp.net核心进行Windows身份
