网站首页 > 博客文章 正文
在.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序列化的简单例子
你 发表评论:
欢迎- 372℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 369℃用AI Agent治理微服务的复杂性问题|QCon
- 360℃初次使用IntelliJ IDEA新建Maven项目
- 352℃Maven技术方案最全手册(mavena)
- 349℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 348℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 346℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 344℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)