c# - Dependency Injection with ASP.NET Web API -
i trying use di in asp.net web api controller. apparently there few implementations out there. wondering of these (castle, ninject, unity etc.) easiest configure/maintain in combination asp.net web api? getting error:
di.controllers.importjsoncontroller' not have default constructor.
if add empty constructor, constructor ifilter ignored.
this controller:
public class importjsoncontroller : apicontroller {     private readonly ifilter _filter;      public importjsoncontroller(ifilter filter)     {         _filter = filter;     }      public httpresponsemessage post([frombody]dynamic value)     {         //do         return response;     } } 
you don't need di container this. here's how hand:
public class poormanscompositionroot : ihttpcontrolleractivator {     public ihttpcontroller create(         httprequestmessage request,         httpcontrollerdescriptor controllerdescriptor,         type controllertype)     {         if (controllertype == typeof(importjsoncontroller))             return new importjsoncontroller(new myfilter());          return null;     } } you need tell asp.net web api class (e.g. in global.asax):
globalconfiguration.configuration.services.replace(     typeof(ihttpcontrolleractivator),     new poormanscompositionroot()); you can read details here: http://blog.ploeh.dk/2012/09/28/dependencyinjectionandlifetimemanagementwithasp.netwebapi
Comments
Post a Comment