0

完全なエラー メッセージ:

{
    "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、クライアントでリクエストを発行しています。結果のコンテンツには、上部にエラーがあります。

前もって感謝します!

4

1 に答える 1

0

この質問を入力しているときに、再確認したところ、自分NinjectModuleの の 1 つを に渡していないことに気付きましたStandardKernel。コンストラクターに渡される型を登録したモジュールを追加すると、その例外が解決されました。型のバインディングが欠落している場合、それが別のことを言うことを期待していました(「バインディングが見つかりませんでしたIMyInterface」など)。

于 2013-10-20T02:27:00.717 に答える