using autofac; using autofac.extras.quartz; using autofac.integration.webapi; using quartz; using star.enterprise.crm.jobscheduler.job; using system.collections.specialized; using system.configuration; using system.reflection; using system.web.http; namespace webapi { public static class autofacconfig { private readonly static string _dicommonconfstring = configurationmanager.appsettings["dicommon"].trim(); private readonly static string _direpositoryconfstring = configurationmanager.appsettings["direpository"].trim(); private readonly static string _diservicesconfstring = configurationmanager.appsettings["diservices"].trim(); private readonly static string _diintegrationconfstring = configurationmanager.appsettings["diintegration"].trim(); private readonly static string _diauthorizationconfstring = configurationmanager.appsettings["diauthorization"].trim(); public static ischeduler initautofacinit() { var builder = new containerbuilder(); // configure and register quartz var schedulerconfig = new namevaluecollection { { "quartz.threadpool.threadcount", "10" }, { "quartz.scheduler.threadname", "scheduler" } }; builder.registermodule(new quartzautofacfactorymodule { configurationprovider = c => schedulerconfig }); builder.registermodule(new quartzautofacjobsmodule(typeof(testjob).assembly)); //注册所有的apicontrollers builder.registerapicontrollers(assembly.getexecutingassembly()).propertiesautowired().instanceperlifetimescope(); //注册所有的接口实现 assembly dicommon = assembly.load(_dicommonconfstring); assembly direpository = assembly.load(_direpositoryconfstring); assembly diservices = assembly.load(_diservicesconfstring); assembly diintegration = assembly.load(_diintegrationconfstring); assembly diauthorization = assembly.load(_diauthorizationconfstring); builder.registerassemblytypes(dicommon, direpository, diservices, diintegration, diauthorization).asimplementedinterfaces(); builder.registertypes(direpository.getexportedtypes()).propertiesautowired().instanceperlifetimescope(); var container = builder.build(); //注册api容器需要使用httpconfiguration对象 httpconfiguration config = globalconfiguration.configuration; config.dependencyresolver = new autofacwebapidependencyresolver(container); // 依赖注入scheduler 并 返回 return container.resolve<ischeduler>(); } } }
如对本文有疑问, 点击进行留言回复!!
使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)
C#实现获取本地内网(局域网)和外网(公网)IP地址的方法分析
网友评论