2012-10-01 42 views
0

當綁定到過濾器時,我應該使用包含在Ninject.Web.WebApi或下面新約定中的BindFilter擴展方法嗎?使用Web API正確實施Ninject過濾器綁定

GlobalConfiguration.Configuration 
     .Filters.Add(new ApiValidationFilter(kernel.Get<IApiAuthenticationService>())); 

我現在正在使用後者,但不斷收到下面的錯誤消息。在web-api過濾器添加之前,我沒有在我的項目中獲得此信息。

由於DbContext已被處理,操作無法完成。

+0

這是Ninject.Web.WebApi –

+0

你沒有使用的過濾器綁定語法,但它確實使您的生活更輕鬆,它做正確的事。我會以使用kernel的理由拒絕你使用的方法。單獨獲取,那就是糟糕的形式。 –

+0

哦,你必須使用分叉版本。 Ninject.Web.WebApi-RC,這是臨時包,直到雷莫更新官方擴展(這仍然與RTM破壞) –

回答

0

我最終不得不求助於。

  var apiRepository = new ApiRepository(new DatabaseFactory()); 
      var apiAuthenticationService = new ApiAuthenticationService(apiRepository, new UnitOfWork(new DatabaseFactory()), new ValidationProvider(null));