Ste*_*rup 12 c# ninject asp.net-web-api2 asp.net-mvc-5.1
我知道有几个问题有点像这个,但由于我无法找到任何文档而其他问题都没有任何答案可以帮助我,这里有:
我创建了一个新的ASP.NET应用程序(VS2013),选择了MVC,我添加了API.我在Package Console中运行"update-package"以更新到最新版本(MVC 5.1.2,Web Api 5.1.2).
然后我添加新的Ninject.MVC5和Ninject.Web.WebApi包.
我将这些行添加到web.config文件(Ninject想要5.0版本,我有5.1):
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http.WebHost" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
在App_start/NinjectWebCommon.cs文件中,我添加了一个绑定:
private static void RegisterServices(IKernel kernel) {
kernel.Bind<ILogger, NLogLogger>();
}
Run Code Online (Sandbox Code Playgroud)
然后我添加一个ApiController,ILogger作为构造函数中的单个参数,我将ILogger作为参数添加到HomeController的构造函数中.
那应该是测试吗?
我错过了WebApi的一些接线吗?或者这是在"幕后"发生的?
无论如何,访问api控制器给了我这个错误:
尝试创建"TestController"类型的控制器时发生错误.确保控制器具有无参数的公共构造函数.
尝试HomeController给了我这个:
你调用的对象是空的.
我尝试了同样的事情,没有更新到最新的包,同样的问题.我已经使用Ninject多年使用MVC 3(我也尝试过Ninject.MVC3包),并且我完全不知道为什么它不起作用.使用WebApi,我有点期待对SetResolver的一些调用,但是......
任何帮助都会得到满足!
Rem*_*oor 10
这不是MVC/WebApi问题
你的配置错了:
kernel.Bind<ILogger, NLogLogger>();
Run Code Online (Sandbox Code Playgroud)
应该
kernel.Bind<ILogger>().To<NLogLogger>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16595 次 |
| 最近记录: |