问题描述
|
我有一个带有一些旧Web窗体页面的新MVC3应用程序。我对Ninject和MVC很熟悉,但是我也想在Web窗体页面上使用Ninject。我已经一起破解了一些东西,但是我不确定这是否是正确的方法。
我已经公开了Ninject内核,如下所示:
public static IKernel Kernel { get { return CreateKernel(); } }
private static IKernel CreateKernel()
{
var kernel = new StandardKernel();
RegisterServices(kernel);
return kernel;
}
然后,我为Web Form页面创建了一个基类,该基类注入了内核:
public class NinjectBase : Page
{
public IKernel Kernel { get; private set; }
public NinjectBase() { Kernel = NinjectMVC3.Kernel; }
public void Page_Init() { Kernel.Inject(this); }
}
这似乎工作得很好。这种方法有什么问题吗?我还有其他方法可以解决这个问题吗?
解决方法
Ninject 2.4将同时支持所有Web技术(ASP.NET,MVC,WCF)。
如果尚未投入生产,请获取2.3.0.x
来自Github的来源:https://github.com/ninject
或来自Continuous Integration Server的二进制文件,位于http://teamcity.codebetter.com
您将需要Ninject,Ninject.Web,Ninject.Web.Common,Nnject.Web.MVC3