ioc container - AutoFac - Instantiating an unregistered service with known services -


instantiating unregistered service known services (injecting them via ctr).

i want avoid container pollution.

here way resolve unregistered concrete types container. note autofac constructor finding , selecting logic, registration event handlers remain in force.

first, define method:

    public static object resolveunregistered(this icomponentcontext context, type servicetype, ienumerable<parameter> parameters)     {         var scope = context.resolve<ilifetimescope>();         using (var innerscope = scope.beginlifetimescope(b => b.registertype(servicetype)))         {             icomponentregistration reg;             innerscope.componentregistry.trygetregistration(new typedservice(servicetype), out reg);              return context.resolvecomponent(reg, parameters);         }     } 

the idea component registration derived context , resolve in current context. can create handy overloads:

    public static object resolveunregistered(this icomponentcontext context, type servicetype)     {         return resolveunregistered(context, servicetype, enumerable.empty<parameter>());     }      public static object resolveunregistered(this icomponentcontext context, type servicetype, params parameter[] parameters)     {         return resolveunregistered(context, servicetype, (ienumerable<parameter>)parameters);     }      public static tservice resolveunregistered<tservice>(this icomponentcontext context)     {         return (tservice)resolveunregistered(context, typeof(tservice), enumerable.empty<parameter>());     }      public static tservice resolveunregistered<tservice>(this icomponentcontext context, params parameter[] parameters)     {         return (tservice)resolveunregistered(context, typeof(tservice), (ienumerable<parameter>)parameters);     } 

Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -