c# - Asp.net MVC boilerplate dependency injection not working -


i'm playing asp.net mvc 6 boilerplate project. i'm trying configure dependency injection 1 of services. seems built in ioc container ignoring binding.

startup.cs

public void configureservices(iservicecollection services){     /*boilerplate's default bindings*/     services.addtransient<idummy, dummy>(p => new dummy()         {             name = "from injection"         }); } 

homecontroller.cs

public iactionresult index(idummy dummy){     var test = dummy.name;     return this.view(homecontrolleraction.index); } 

exception:

argumentexception: type 'presentation.webui.controllers.idummy' not have default constructor

could please tell me doing wrong?

that exception because framework cannot bind action arguments interfaces.

you trying injection on action when framework default uses constructor injection.

reference: dependency injection , controllers

constructor injection

asp.net core’s built-in support constructor-based dependency injection extends mvc controllers. adding service type controller constructor parameter, asp.net core attempt resolve type using built in service container.

public class homecontroller : controller {     idummy dummy;     public homecontroller(idummy dummy) {         this.dummy = dummy     }      public iactionresult index(){         var test = dummy.name;         return this.view(homecontrolleraction.index);     } } 

asp.net core mvc controllers should request dependencies explicitly via constructors. in instances, individual controller actions may require service, , may not make sense request @ controller level. in case, can choose inject service parameter on action method.

action injection fromservices

sometimes don’t need service more 1 action within controller. in case, may make sense inject service parameter action method. done marking parameter attribute [fromservices] shown here:

public iactionresult index([fromservices] idummy dummy) {     var test = dummy.name;     return this.view(homecontrolleraction.index); } 

Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -