Asp.net web api Web API控制器的集成测试出现以下错误:Type';xxx控制器&x27;没有默认构造函数
完整错误消息:Asp.net web api Web API控制器的集成测试出现以下错误:Type';xxx控制器&x27;没有默认构造函数,asp.net-web-api,ninject,Asp.net Web Api,Ninject,完整错误消息: { "Message":"An error has occurred.", "ExceptionMessage":"Type 'XXXController' does not have a default constructor", "ExceptionType":"System.ArgumentException", "StackTrace":" at System.Linq.Expressions.Expression.New(Type t
{
"Message":"An error has occurred.",
"ExceptionMessage":"Type 'XXXController' does not have a default constructor",
"ExceptionType":"System.ArgumentException",
"StackTrace":" at System.Linq.Expressions.Expression.New(Type type)\r\n at System.Web.Http.Internal.TypeActivator.Create[TBase](Type instanceType)\r\n at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.GetInstanceOrActivator(HttpRequestMessage request, Type controllerType, Func`1& activator)\r\n at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)"
}
我在谷歌上搜索了一段时间,现在还在想下一步该怎么做
我已通过以下方式安装了一个NinjectDependencyResolver
:
PM> Install-Package Ninject.WebApi.DependencyResolver
我在TestInitialize
方法中使用以下代码创建HttpClient
:
var kernel = new StandardKernel(/* ... */);
var config = new HttpSelfHostConfiguration(BaseAddress);
/* ... */
config.DependencyResolver = new NinjectDependencyResolver(kernel);
_client = new HttpClient(new HttpServer(config));
然后我在客户端发出一个PostAsync
请求。结果的内容在顶部有错误
提前谢谢 在键入此问题时,我仔细检查并注意到我没有将我的
ninject模块
传递到标准内核
。添加注册要传递到构造函数中的类型的模块解决了该异常。如果我缺少某个类型的绑定,我希望它会说一些其他的话(比如“找不到IMyInterface
”的绑定)