.Net 配置系统入门

.Net中的配置系统支持丰富的配置源,包括文件(json、xml、ini等)、注册表、环境变量、命令行、azure key vault等,还可以配置自定义配置源。可以跟踪配置的改变,可以按照优先级覆盖。

传统项目一般是从web.config文件中读取配置项的值,配置项一般是xml格式。如下图所示:

这种配置方式有一个弊端,当配置项比较复杂时,比如有多个层级,一层层嵌套,看起来非常不直观。这时候用json格式的配置就显得很方便。下面用代码示例展示json格式配置文件的基本用法(代码基于.NetCore3.1版本):

方法一:

1.创建一个json文件,文件名称随意(例如:config.json),设置文件属性为“如果较新则复制”。

 

 

2.nuget安装:Microsoft.Extensions.Configuration和Microsoft.Extensions.Configuration.Json;

3.代码示例:

        static void Main(string[] args)
        {
            ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
            configurationBuilder.AddJsonFile("config.json", optional: true, reloadOnChange: true);
            IConfigurationRoot root = configurationBuilder.Build();
            string name = root["name"];
            Console.WriteLine($"name={name}");

            string address = root.GetSection("proxy:address").Value;
            Console.WriteLine($"address={address}");

            Console.ReadLine();
        }

执行结果:

如果读取根节点的配置项,比如name,直接root["name"]就可以。

如果读取子节点的配置项,比如proxy节点下的address,则需要调用GetSection方法,中间的参数名称用冒号(:)连接,表示子节点,root.GetSection("proxy:address").Value

如果有多级子节点,一直用冒号连接,直到最内层节点为止,比如要获取到addr1的值

 string address = root.GetSection("proxy:address:addr1").Value;

 

方法二:

除了根据节点的名称读取外,还可以将json配置文件的信息映射为class类,通过常规的(.)点调用,获取到配置项的值:

1.nuget安装:Microsoft.Extensions.Configuration.Binder;

2.代码示例:

        static void Main(string[] args)
        {
            ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
            configurationBuilder.AddJsonFile("config.json", optional: true, reloadOnChange: true);
            IConfigurationRoot root = configurationBuilder.Build();
            ConfigJson config = root.Get<ConfigJson>();//将json配置项映射为一个对象
            Console.WriteLine(config.name);
            Console.WriteLine(config.proxy.port);

            Console.ReadLine();
        }

自定义类,类中的字段名称跟json配置项名称对应:

    class ConfigJson
    {
        public string name { get; set; }
        public string age { get; set; }
        public Proxy proxy { get; set; }
    }

    class Proxy
    {
        public string address { get; set; }
        public int port { get; set; }
    }

执行结果:

这种方法跟第一种的区别是,这里使用IConfigurationRoot.Get方法,将json配置项映射为一个对象。

以上两种方法在实际的开发中,并不会这么写,因为比较麻烦,但这是基础用法,下面文章会对上面的基础写法封装,更方便在实际开发中使用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《ASP.Net 4.5入门经典》是一本介绍ASP.Net 4.5的经典教程。ASP.Net是一种用于构建Web应用程序的开发框架,而ASP.Net 4.5是该框架的最新版本。本书通过详细解释ASP.Net 4.5的各个方面,提供了一个全面而系统的学习指南。 《ASP.Net 4.5入门经典》从基础概念出发,逐步带领读者了解ASP.Net的核心特性和功能。首先,书中介绍了ASP.Net的开发环境和配置,帮助读者搭建开发环境。接下来,书中详细讲解了ASP.Net的页面生命周期和事件模型,让读者了解页面的创建、加载、处理请求和响应等过程。此外,本书还介绍了ASP.Net的控件模型和数据绑定技术,让读者能够在页面上使用各种控件和绑定数据。 除了基础知识,本书还深入介绍了ASP.Net的高级功能和技术。比如,书中详细介绍了ASP.Net的安全机制,包括认证和授权。此外,本书还介绍了ASP.Net的错误处理和调试技术,帮助读者解决在开发过程中遇到的各种问题。 《ASP.Net 4.5入门经典》的特点之一是丰富的示例代码和练习题。通过实际的案例和练习,读者可以更好地理解和应用所学知识。此外,本书还提供了在线资源和学习指南,帮助读者进一步巩固和拓展所学内容。 总体来说,《ASP.Net 4.5入门经典》适合有一定编程基础的读者学习ASP.Net。无论是新手还是有经验的开发人员,都能从这本书中获得ASP.Net开发的基本知识和技巧。无论是想开发网站,还是扩展现有网站的功能,本书都能为读者提供宝贵的指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值