网站首页 > 博客文章 正文
在.NET 中,有多种配置文件格式和读取机制可用于管理应用程序的设置和配置信息。这包括JSON、XML、INI格式的配置文件,以及环境变量。下面我们将分别探讨如何轻松读取这些配置文件和环境变量。
1. JSON 配置文件
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在.NET 中,可以使用 System.Text.Json 命名空间下的类来读取 JSON 配置文件。
例如,假设你有一个名为 appsettings.json 的配置文件,内容如下:
json{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
}
你可以使用以下代码读取该配置文件:
csharpusing System;
using System.IO;
using System.Text.Json;
public class AppSettings
{
public ConnectionStrings ConnectionStrings { get; set; }
public Logging Logging { get; set; }
}
public class ConnectionStrings
{
public string DefaultConnection { get; set; }
}
public class Logging
{
public LogLevel LogLevel { get; set; }
}
public class LogLevel
{
public string Default { get; set; }
public string Microsoft { get; set; }
public string MicrosoftHostingLifetime { get; set; }
}
class Program
{
static void Main()
{
string jsonFilePath = "appsettings.json";
string jsonString = File.ReadAllText(jsonFilePath);
var appSettings = JsonSerializer.Deserialize<AppSettings>(jsonString);
Console.WriteLine(appSettings.ConnectionStrings.DefaultConnection);
}
}
2. XML 配置文件
XML(Extensible Markup Language)是一种标记语言,可以用来创建自定义的标记来描述存储的数据。在.NET 中,可以使用 System.Xml 命名空间下的类来读取 XML 配置文件。
例如,假设你有一个名为 app.config 的 XML 配置文件,内容如下:
xml<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="Setting1" value="Value1" />
<add key="Setting2" value="Value2" />
</appSettings>
你可以使用以下代码读取该配置文件:
csharpusing System;
using System.Configuration;
using System.Xml;
class Program
{
static void Main()
{
var setting1 = ConfigurationManager.AppSettings["Setting1"];
var setting2 = ConfigurationManager.AppSettings["Setting2"];
Console.WriteLine(setting1);
Console.WriteLine(setting2);
}
}
请注意,XML 配置文件通常需要添加在项目中的 App.config 或 Web.config 文件中,并且需要引用 System.Configuration 程序集。
猜你喜欢
- 2024-10-17 [NewLife.XCode]反向工程(自动建表建库大杀器)
- 2024-10-17 Java 使用fastjson将json字符串转为泛型对象
- 2024-10-17 json schema(json schema生成工具)
- 2024-10-17 python 实例分析——发送json数据相关实现技巧
- 2024-10-17 比较一下XML, JSON和YAML(xml数据和json数据)
- 2024-10-17 Protobuf的简单介绍、使用和分析(protobuf的作用)
- 2024-10-17 详解电子表格中的json数据:序列化与反序列化
- 2024-10-17 【Qt教程】使用 QJson 处理 JSON(qt线程使用)
- 2024-10-17 引入 jackson-dataformat-xml 后,默认响应结果是 json 还是 xml?
- 2024-10-17 C# XML序列化、JSON序列化和Binary序列化的简单例子
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)