欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 加载配置文件

程序员文章站 2022-04-08 20:30:31
//加载配置文件 var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, relo ......

//加载配置文件
var builder = new configurationbuilder()
.setbasepath(directory.getcurrentdirectory())
.addjsonfile("appsettings.json", optional: false, reloadonchange: true)
.addenvironmentvariables();
configurationmanager.configuration = builder.build();

 

 //注册ioc=autofac  类

  public class iocmanager

  {

        private static ilifetimescope _container;

        public static void initialize(params string[] assemblynamepattens)

        {

            containerbuilder builder = new containerbuilder();

            _container = builder.build();

            initialize(_container, assemblynamepattens);

        }

        public static void initialize(ilifetimescope container, params string[] assemblynamepattens)

        {

            container.update(builder =>

            {

                //运行绝对路径=appdomain.currentdomain.basedirectory

                directory.getfiles(appdomain.currentdomain.basedirectory, "*.dll")

                    .where(it => regex.ismatch(it, $@"(oa|{assemblynamepattens.join("|")})\.[^\\]*\.dll"))

                    .each(it => appdomain.currentdomain.load(path.getfilenamewithoutextension(it)));

 

                //注册ioc

                var assembiles = appdomain.currentdomain.getassemblies();

                builder.registerassemblytypes(assembiles)

                    .except<idependencysingleton>()

                    .except<idependencyrequestsingleton>()

                    .as<idependency>().asself().asimplementedinterfaces();

 

                builder.registerassemblytypes(assembiles)

                    .except<idependencyrequestsingleton>()

                    .as<idependencysingleton>().asself().asimplementedinterfaces().singleinstance();

 

                builder.registerassemblytypes(appdomain.currentdomain.getassemblies())

                    .as<idependencyrequestsingleton>().asself().asimplementedinterfaces()

                    .instanceperlifetimescope();

            });

        }

 

 

        public static ilifetimescope getcontainer()

        {

            return _container;

        }

}