LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

.NET配置文件大揭秘:轻松读取JSON、XML、INI和环境变量

freeflydom
2024年2月24日 14:30 本文热度 440

 

概述:.NET中的IConfiguration接口提供了一种多源读取配置信息的灵活机制,包括JSON、XML、INI文件和环境变量。通过示例,清晰演示了从这些不同源中读取配置的方法,使配置获取变得方便且易于扩展。这种方式适用于不同场景,如API密钥、数据库连接等,为应用提供了高度可配置性。

在.NET中,IConfiguration接口提供了一种灵活的方式来管理和读取应用程序配置信息。这可以包括来自不同源的配置信息,如JSON、XML、INI文件以及环境变量。

读取JSON文件:

JSON文件通常用于保存结构化的配置信息,例如Web应用的设置、API密钥等。

JSON文件内容如下:

{
  "AppSettings": {
    "ApiKey": "your_api_key",
    "LogLevel": "Info"
  },
  "DatabaseSettings": {
    "ConnectionString": "your_connection_string",
    "TimeoutSeconds": 30
  }}

实例描述:

using Microsoft.Extensions.Configuration;

using System;


public class JsonConfigReader

{

    public static IConfigurationRoot ReadJsonFile(string filePath)

    {

        try

        {

            // 创建ConfigurationBuilder

            var builder = new ConfigurationBuilder();


            // 添加Json文件作为配置源

            builder.AddJsonFile(filePath);


            // 构建IConfigurationRoot

            IConfigurationRoot config = builder.Build();


            return config;

        }

        catch (Exception ex)

        {

            Console.WriteLine($"读取JSON文件失败: {ex.Message}");

            return null;

        }

    }

}

使用示例:

public class Program

{

    public static void Main()

    {

        // 指定JSON文件路径

        string jsonFilePath = "appsettings.json";


        // 读取JSON文件内容

        IConfigurationRoot config = JsonConfigReader.ReadJsonFile(jsonFilePath);


        if (config != null)

        {

            // 获取配置项

            string apiKey = config["AppSettings:ApiKey"];

            string connectionStr = config["DatabaseSettings:ConnectionString"];


            Console.WriteLine($"API Key: {apiKey}, Database Connection: {connectionStr}");

        }

    }

}

读取XML文件:

XML文件常用于保存包含大量元数据的配置信息,例如Windows应用程序配置。

XML文件内容如下:

<configuration>
  <AppSettings>
    <ApiKey>your_api_key</ApiKey>
    <LogLevel>Info</LogLevel>
  </AppSettings>
  <DatabaseSettings>
    <ConnectionString>your_connection_string</ConnectionString>
    <TimeoutSeconds>30</TimeoutSeconds>
  </DatabaseSettings></configuration>

实例描述:

using Microsoft.Extensions.Configuration;

using System;


public class XmlConfigReader

{

    public static IConfigurationRoot ReadXmlFile(string filePath)

    {

        try

        {

            // 创建ConfigurationBuilder

            var builder = new ConfigurationBuilder();


            // 添加Xml文件作为配置源

            builder.AddXmlFile(filePath);


            // 构建IConfigurationRoot

            IConfigurationRoot config = builder.Build();


            return config;

        }

        catch (Exception ex)

        {

            Console.WriteLine($"读取XML文件失败: {ex.Message}");

            return null;

        }

    }

}

使用示例:

public class Program

{

    public static void Main()

    {

        // 指定XML文件路径

        string xmlFilePath = "appsettings.xml";


        // 读取XML文件内容

        IConfigurationRoot config = XmlConfigReader.ReadXmlFile(xmlFilePath);


        if (config != null)

        {

            // 获取配置项

            string apiKey = config["AppSettings:ApiKey"];

            string connectionStr = config["DatabaseSettings:ConnectionString"];


            Console.WriteLine($"API Key: {apiKey}, Database Connection: {connectionStr}");

        }

    }

}

读取INI文件:

INI文件是一种简单的配置文件格式,通常用于保存简单的键值对配置。

INI文件内容如下:

[AppSettings]

ApiKey=your_api_key

LogLevel=Info


[DatabaseSettings]

ConnectionString=your_connection_string

TimeoutSeconds=30

实例描述:

using Microsoft.Extensions.Configuration;

using System;


public class IniConfigReader

{

    public static IConfigurationRoot ReadIniFile(string filePath)

    {

        try

        {

            // 创建ConfigurationBuilder

            var builder = new ConfigurationBuilder();


            // 添加Ini文件作为配置源

            builder.AddIniFile(filePath);


            // 构建IConfigurationRoot

            IConfigurationRoot config = builder.Build();


            return config;

        }

        catch (Exception ex)

        {

            Console.WriteLine($"读取INI文件失败: {ex.Message}");

            return null;

        }

    }

}

使用示例:

public class Program

{

    public static void Main()

    {

        // 指定INI文件路径

        string iniFilePath = "appsettings.ini";


        // 读取INI文件内容

        IConfigurationRoot config = IniConfigReader.ReadIniFile(iniFilePath);


        if (config != null)

        {

            // 获取配置项

            string apiKey = config["AppSettings:ApiKey"];

            string connectionStr =


 config["DatabaseSettings:ConnectionString"];


            Console.WriteLine($"API Key: {apiKey}, Database Connection: {connectionStr}");

        }

    }

}


读取环境变量:

环境变量通常用于存储敏感信息,如API密钥或数据库连接字符串。

实例描述:

using Microsoft.Extensions.Configuration;

using System;


public class EnvConfigReader

{

    public static IConfigurationRoot ReadEnvironmentVariables()

    {

        try

        {

            // 创建ConfigurationBuilder

            var builder = new ConfigurationBuilder();


            // 添加环境变量作为配置源

            builder.AddEnvironmentVariables();


            // 构建IConfigurationRoot

            IConfigurationRoot config = builder.Build();


            return config;

        }

        catch (Exception ex)

        {

            Console.WriteLine($"读取环境变量失败: {ex.Message}");

            return null;

        }

    }

}

使用示例:

public class Program

{

    public static void Main()

    {

        // 读取环境变量内容

        IConfigurationRoot config = EnvConfigReader.ReadEnvironmentVariables();


        if (config != null)

        {

            // 获取配置项

            string apiKey = config["AppSettings:ApiKey"];

            string connectionStr = config["DatabaseSettings:ConnectionString"];


            Console.WriteLine($"API Key: {apiKey}, Database Connection: {connectionStr}");

        }

    }

}

以上代码提供了使用IConfiguration读取JSON、XML、INI文件以及环境变量的通用方法,使得配置信息的获取更加灵活和便捷。

转自https://www.cnblogs.com/hanbing81868164/p/18022302


该文章在 2024/2/24 14:30:14 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved