c# - Resolving or injecting dependency in global.asax using autofac -
i need execute one-time code on start of application in global.asax. i've got autofac , running numerous registrations problem can't figure out how resolve or inject dependency securityconfig.registeractivities() that's inside global.asax.
i tried manually resolving dependency myself in global.asax using autofac container threw exception "no scope tag matching 'autofacwebrequest' visible scope in instance requested."
how dependency class?
protected void application_start() { var builder = new containerbuilder(); dependencyregistrar dr = new dependencyregistrar(); dr.register(builder); new securityconfig().registeractivities(); // needs injecting or resolving of iservicemanager instance } public class dependencyregistrar { public virtual icontainer register(containerbuilder builder) { builder.registertype<servicemanager>().as<iservicemanager>().instanceperhttprequest(); builder.registertype<securityconfig>().asself().propertiesautowired().instanceperdependency(); } } public class securityconfig { public void registeractivities() { servicemanager.dosomething(); } public iservicemanager servicemanager { get; set; } }
this allowed me resolve dependencies finally.
using(var scope = container.beginlifetimescope("autofacwebrequest")) { scope.resolve<securityconfig>().registeractivities(); }
Comments
Post a Comment