2014-11-25 21 views
7

là có thể đưa các phụ thuộc vào lớp WebApiConfig bằng Ninject không?Tiêm phụ thuộc Ninject vào WebApiConfig trong Web API 2

Đây là lớp WebApiConfig của tôi.

 public static class WebApiConfig 
     { 
      public static void Register(HttpConfiguration config) 
      { 
       // Web API routes 
       config.MapHttpAttributeRoutes(); 

       config.Routes.MapHttpRoute(
        name: "DefaultApi", 
        routeTemplate: "api/{controller}/{id}", 
        defaults: new { id = RouteParameter.Optional } 
       ); 

       config.Services.Replace(typeof(IExceptionHandler), new ErrorHandlerMessageHandler(*NEEDS DEPENDENCY*)); 
      } 
     } 

Và đây là lời tuyên bố NinjectHttpApplication tôi

public class WebApiApplication : NinjectHttpApplication 
    { 
     protected override void OnApplicationStarted() 
     { 
      base.OnApplicationStarted(); 
      GlobalConfiguration.Configure(WebApiConfig.Register); 
     } 

     protected override IKernel CreateKernel() 
     { 
      var kernel = new StandardKernel(); 
      RegisterServices(kernel); 

      GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver(kernel); 
      return kernel; 
     } 

     private void RegisterServices(IKernel kernel) 
     { 
      //bindings 
     } 
    } 

Trả lời

3

Cuối cùng tôi không phải làm điều này nhưng tôi đã tạo ra một bài viết trên blog về cách để làm điều này here

+0

nhờ bài này đã giúp tôi, nhưng tôi nghĩ một số người đã có lớp NinjectWebCommon này nếu họ đang thêm WebAPI vào một dự án MVC hiện có. Tôi thấy rằng dòng sau đây là tất cả những gì tôi cần để bổ sung: 'GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver (_kernel);' sau lệnh 'RegisterServices (_kernel)' trong phương thức 'CreateKernel'. Lưu ý rằng đây là 'NinjectDependencyResolver' từ không gian tên' Ninject.Web.WebApi' (có thể phải tải xuống gói NuGet riêng biệt). Cảm ơn! – Jordan

+0

Tôi vẫn đang cố gắng tìm ra cách để làm điều này. Lớp NinjectWebCommon của tôi đã chứa dòng đó, tuy nhiên ngay cả tôi cũng có một thuộc tính được trang trí với thuộc tính [Tiêm], sự phụ thuộc không được tiêm. Có suy nghĩ gì không? –

+0

Bạn đã chuyển blog của mình chưa? Có vẻ như nó không còn nữa. –

Các vấn đề liên quan