翼度科技»论坛 编程开发 .net 查看内容

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

5

主题

5

帖子

15

积分

新手上路

Rank: 1

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

JSON文件通常用于保存结构化的配置信息,例如Web应用的设置、API密钥等。
JSON文件内容如下:
  1. {
  2.   "AppSettings": {
  3.     "ApiKey": "your_api_key",
  4.     "LogLevel": "Info"
  5.   },
  6.   "DatabaseSettings": {
  7.     "ConnectionString": "your_connection_string",
  8.     "TimeoutSeconds": 30
  9.   }
  10. }
复制代码
实例描述:
  1. using Microsoft.Extensions.Configuration;
  2. using System;
  3. public class JsonConfigReader
  4. {
  5.     public static IConfigurationRoot ReadJsonFile(string filePath)
  6.     {
  7.         try
  8.         {
  9.             // 创建ConfigurationBuilder
  10.             var builder = new ConfigurationBuilder();
  11.             // 添加Json文件作为配置源
  12.             builder.AddJsonFile(filePath);
  13.             // 构建IConfigurationRoot
  14.             IConfigurationRoot config = builder.Build();
  15.             return config;
  16.         }
  17.         catch (Exception ex)
  18.         {
  19.             Console.WriteLine($"读取JSON文件失败: {ex.Message}");
  20.             return null;
  21.         }
  22.     }
  23. }
复制代码
使用示例:
  1. public class Program
  2. {
  3.     public static void Main()
  4.     {
  5.         // 指定JSON文件路径
  6.         string jsonFilePath = "appsettings.json";
  7.         // 读取JSON文件内容
  8.         IConfigurationRoot config = JsonConfigReader.ReadJsonFile(jsonFilePath);
  9.         if (config != null)
  10.         {
  11.             // 获取配置项
  12.             string apiKey = config["AppSettings:ApiKey"];
  13.             string connectionStr = config["DatabaseSettings:ConnectionString"];
  14.             Console.WriteLine($"API Key: {apiKey}, Database Connection: {connectionStr}");
  15.         }
  16.     }
  17. }
复制代码
读取XML文件:

XML文件常用于保存包含大量元数据的配置信息,例如Windows应用程序配置。
XML文件内容如下:
  1. <configuration>
  2.   <AppSettings>
  3.     <ApiKey>your_api_key</ApiKey>
  4.     <LogLevel>Info</LogLevel>
  5.   </AppSettings>
  6.   <DatabaseSettings>
  7.     <ConnectionString>your_connection_string</ConnectionString>
  8.     <TimeoutSeconds>30</TimeoutSeconds>
  9.   </DatabaseSettings>
  10. </configuration>
复制代码
实例描述:
  1. using Microsoft.Extensions.Configuration;
  2. using System;
  3. public class XmlConfigReader
  4. {
  5.     public static IConfigurationRoot ReadXmlFile(string filePath)
  6.     {
  7.         try
  8.         {
  9.             // 创建ConfigurationBuilder
  10.             var builder = new ConfigurationBuilder();
  11.             // 添加Xml文件作为配置源
  12.             builder.AddXmlFile(filePath);
  13.             // 构建IConfigurationRoot
  14.             IConfigurationRoot config = builder.Build();
  15.             return config;
  16.         }
  17.         catch (Exception ex)
  18.         {
  19.             Console.WriteLine($"读取XML文件失败: {ex.Message}");
  20.             return null;
  21.         }
  22.     }
  23. }
复制代码
使用示例:
  1. public class Program
  2. {
  3.     public static void Main()
  4.     {
  5.         // 指定XML文件路径
  6.         string xmlFilePath = "appsettings.xml";
  7.         // 读取XML文件内容
  8.         IConfigurationRoot config = XmlConfigReader.ReadXmlFile(xmlFilePath);
  9.         if (config != null)
  10.         {
  11.             // 获取配置项
  12.             string apiKey = config["AppSettings:ApiKey"];
  13.             string connectionStr = config["DatabaseSettings:ConnectionString"];
  14.             Console.WriteLine($"API Key: {apiKey}, Database Connection: {connectionStr}");
  15.         }
  16.     }
  17. }
复制代码
读取INI文件:

INI文件是一种简单的配置文件格式,通常用于保存简单的键值对配置。
INI文件内容如下:
  1. [AppSettings]
  2. ApiKey=your_api_key
  3. LogLevel=Info
  4. [DatabaseSettings]
  5. ConnectionString=your_connection_string
  6. TimeoutSeconds=30
复制代码
实例描述:
  1. using Microsoft.Extensions.Configuration;
  2. using System;
  3. public class IniConfigReader
  4. {
  5.     public static IConfigurationRoot ReadIniFile(string filePath)
  6.     {
  7.         try
  8.         {
  9.             // 创建ConfigurationBuilder
  10.             var builder = new ConfigurationBuilder();
  11.             // 添加Ini文件作为配置源
  12.             builder.AddIniFile(filePath);
  13.             // 构建IConfigurationRoot
  14.             IConfigurationRoot config = builder.Build();
  15.             return config;
  16.         }
  17.         catch (Exception ex)
  18.         {
  19.             Console.WriteLine($"读取INI文件失败: {ex.Message}");
  20.             return null;
  21.         }
  22.     }
  23. }
复制代码
使用示例:
  1. public class Program
  2. {
  3.     public static void Main()
  4.     {
  5.         // 指定INI文件路径
  6.         string iniFilePath = "appsettings.ini";
  7.         // 读取INI文件内容
  8.         IConfigurationRoot config = IniConfigReader.ReadIniFile(iniFilePath);
  9.         if (config != null)
  10.         {
  11.             // 获取配置项
  12.             string apiKey = config["AppSettings:ApiKey"];
  13.             string connectionStr =
  14. config["DatabaseSettings:ConnectionString"];
  15.             Console.WriteLine($"API Key: {apiKey}, Database Connection: {connectionStr}");
  16.         }
  17.     }
  18. }
复制代码
读取环境变量:

环境变量通常用于存储敏感信息,如API密钥或数据库连接字符串。
实例描述:
  1. using Microsoft.Extensions.Configuration;
  2. using System;
  3. public class EnvConfigReader
  4. {
  5.     public static IConfigurationRoot ReadEnvironmentVariables()
  6.     {
  7.         try
  8.         {
  9.             // 创建ConfigurationBuilder
  10.             var builder = new ConfigurationBuilder();
  11.             // 添加环境变量作为配置源
  12.             builder.AddEnvironmentVariables();
  13.             // 构建IConfigurationRoot
  14.             IConfigurationRoot config = builder.Build();
  15.             return config;
  16.         }
  17.         catch (Exception ex)
  18.         {
  19.             Console.WriteLine($"读取环境变量失败: {ex.Message}");
  20.             return null;
  21.         }
  22.     }
  23. }
复制代码
使用示例:
  1. public class Program
  2. {
  3.     public static void Main()
  4.     {
  5.         // 读取环境变量内容
  6.         IConfigurationRoot config = EnvConfigReader.ReadEnvironmentVariables();
  7.         if (config != null)
  8.         {
  9.             // 获取配置项
  10.             string apiKey = config["AppSettings:ApiKey"];
  11.             string connectionStr = config["DatabaseSettings:ConnectionString"];
  12.             Console.WriteLine($"API Key: {apiKey}, Database Connection: {connectionStr}");
  13.         }
  14.     }
  15. }
复制代码
以上代码提供了使用IConfiguration读取JSON、XML、INI文件以及环境变量的通用方法,使得配置信息的获取更加灵活和便捷。
 



来源:https://www.cnblogs.com/hanbing81868164/p/18022302
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具