我想在一个结合ASP.Net webforms和ASP.Net MVC的项目中使用Ninject.我正在使用Ninject 2,但是当我使用来自Ninject.Web.Mvc的NinjectHttpApplication时,当我使用类似于PageBase的东西而没有创建内核时,它会抱怨.
我在Global.asax中有以下内容,我不确定要添加什么.
public class MvcApplication : Ninject.Web.Mvc.NinjectHttpApplication { protected override void OnApplicationStarted() { AreaRegistration.RegisterallAreas(); RegisterRoutes(RouteTable.Routes); RegisterallControllersIn(Assembly.GetExecutingAssembly()); } protected override Ninject.IKernel CreateKernel() { return new StandardKernel(new ServiceModule()); } }
解决方法
正如Ruben所说,我在Ninject邮件列表上张贴了一条消息:
http://groups.google.com/group/ninject/browse_thread/thread/317fc48387399aa6
简而言之,答:不幸的是,这是不可能的.但是,使用自定义PageBase类,您可以使Property和Method注入成为可能(来自Nate Kohari在Ninject邮件列表中的答案):
public abstract class PageBase : Page { public IKernel Kernel { get; private set; } public PageBase() { Kernel = ...; } public void Page_Init() { Kernel.Inject(this); } }
原文地址:https://www.jb51.cc/aspnet/247357.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。