ASP.NET网站中使用Ninject 3进行依赖注入
我尝试了在
How can I implement Ninject or DI on asp.net Web Forms?中找到的以下解决方案(Jason的回答)
>创建一个新的ASP.NET WebForms项目 在ASP.NET Web应用程序中运行良好. 问题是我想在ASP.NET网站中使用Ninject for DI,而不是Web应用程序. 我在NinjectWebCommon / RegisterServices中注册了自定义绑定: private static void RegisterServices(IKernel kernel) { kernel.Bind<ITestRepository>().To<TestRepository>(); } 在网页中我注入它: public partial class _Default : System.Web.UI.Page { [Inject] public ITestRepository _repository { get; set; } protected void Page_Load(object sender,EventArgs e) { System.Diagnostics.Trace.WriteLine(_repository.ExecuteOperation()); } } 它始终抛出一个空引用异常,并且永远不会到达NinjectWebCommon.cs中的断点 – 与Web应用程序不同. 还有什么办法让Ninject 3在网站上运行? 解决方法
我给你的第一个建议是……
不要使用ASP.NET网站.忘了他们存在.不惜一切代价避免它们.他们是过去几天的不合时宜的回归,由于遗留的原因,这些日子仍然存在. 我的第二条建议是…… 如果您坚持继续使用网站项目,请大量投资于头痛药,因为您需要它. 我的第三条建议是…… 见第一建议. 我的第四条建议是…… 如果你完全无法控制它是否是一个网站项目,那么就放弃使用Ninject或任何其他DI容器的想法.网站项目继承自Web应用程序站点的不同基类集.你不会以同样的方式工作,你可能会花太多时间试图使它适合. 编辑: 基本上,代码模型在Web站点和Web应用程序之间的工作方式非常不同.您只需要看一下网站应用程序在Web应用程序应用程序中没有名称空间这一事实.这应该告诉你这些有多么不同. 我不完全确定激活过程在两者中都是一样的. 但是,说了这么多.你的代码有一个明显的问题.您的页面派生自System.Web.UI.Page而不是Ninject.Web.PageBase (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 使用Gzip在ASP.NET / IIS7中输出乱码错误页面
- asp.net-core – .NET核心托管包
- asp.net-mvc – 在visual studio中快速更改视图和
- asp.net-mvc-3 – 显示模型中外键属性的显示值
- asp.net-web-api – 默认请求标头不接受任何值,它
- asp.net – 优化的捆绑包在从网站请求时返回404
- 使用ASP.NET创建精灵图像
- asp.net-mvc – 从扩展Apicontroller的MVC控制器
- asp.net-mvc – 数据注释真的是一个好主意验证吗
- asp.net-mvc – OWIN – Authentication.SignOut