C# 配置文件读取:App.config 用法

简介: App.config用于存储程序配置(如数据库连接、接口地址),避免硬编码,提升可维护性。通过ConfigurationManager读取配置,支持字符串、整型、布尔值及连接字符串的获取,需引用System.Configuration程序集。

配置文件(App.config)用于存储程序配置(如数据库连接字符串、接口地址),避免硬编码,便于维护。

案例:读取 App.config 配置

  1. 新建 App.config 文件(右键项目→添加→应用程序配置文件):
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="ApiBaseUrl" value="https://api.example.com" />
    <add key="Timeout" value="3000" />
    <add key="EnableLog" value="true" />
  </appSettings>
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=localhost;Initial Catalog=TestDB;User ID=sa;Password=123456" providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>
  1. C# 读取配置的工具类:
using System.Configuration;
public class ConfigHelper
{
    // 读取AppSettings配置
    public static string GetAppSetting(string key, string defaultValue = "")
    {
        return ConfigurationManager.AppSettings[key] ?? defaultValue;
    }
    // 读取整数类型的AppSettings配置
    public static int GetAppSettingInt(string key, int defaultValue = 0)
    {
        string value = GetAppSetting(key);
        if (int.TryParse(value, out int result))
        {
            return result;
        }
        return defaultValue;
    }
    // 读取布尔类型的AppSettings配置
    public static bool GetAppSettingBool(string key, bool defaultValue = false)
    {
        string value = GetAppSetting(key);
        if (bool.TryParse(value, out bool result))
        {
            return result;
        }
        return defaultValue;
    }
    // 读取连接字符串
    public static string GetConnectionString(string name)
    {
        ConnectionStringSettings setting = ConfigurationManager.ConnectionStrings[name];
        return setting?.ConnectionString ?? "";
    }
}
// 调用示例
string apiUrl = ConfigHelper.GetAppSetting("ApiBaseUrl");
int timeout = ConfigHelper.GetAppSettingInt("Timeout");
bool enableLog = ConfigHelper.GetAppSettingBool("EnableLog");
string connectionString = ConfigHelper.GetConnectionString("DefaultConnection");
Console.WriteLine($"接口地址:{apiUrl}");
Console.WriteLine($"超时时间:{timeout}ms");
Console.WriteLine($"是否启用日志:{enableLog}");
Console.WriteLine($"数据库连接字符串:{connectionString}");

注意:需引用 System.Configuration 程序集(右键项目→添加→引用→勾选 System.Configuration)。

相关文章
|
4月前
|
存储 SQL 人工智能
Windows Server 2025 中文版、英文版下载 (2025 年 9 月更新)
Windows Server 2025 中文版、英文版下载 (2025 年 9 月更新)
1448 3
Windows Server 2025 中文版、英文版下载 (2025 年 9 月更新)
|
2天前
|
安全 C#
C# 实现简单的日志工具类
这是一个C#文件日志类,支持按日期生成日志文件,提供Info、Warn、Error三种级别记录功能,线程安全且使用简单,适用于各类应用程序的日志记录需求。
|
2天前
|
C#
C# 实现简单的工厂模式
工厂模式通过工厂类封装对象创建逻辑,客户端无需关心具体实现,只需调用工厂方法即可获取所需对象,降低耦合度,提升扩展性与维护性。
|
2天前
|
算法 C#
C# 实现简单的策略模式
策略模式定义算法族,封装可互换的算法,使算法变化独立于客户端。通过接口统一调用,支持动态切换排序方式,如冒泡排序与快速排序,提升系统灵活性与可扩展性。
|
2天前
|
C#
C# 变量与数据类型:3 分钟入门核心用法
C#是强类型语言,变量需声明类型或用var推断。数据类型分值类型(如int、decimal)和引用类型(如string)。示例:用int和decimal计算商品总价,并通过字符串插值输出格式化结果,适用于金融计算。
|
2天前
|
安全 C#
C# 实现文本文件批量重命名工具
批量重命名工具可统一修改文件夹内文件名,支持添加前缀或替换关键词。通过C#代码实现,安全高效,避免文件覆盖,适用于大量文件的命名整理,操作简单便捷。
|
2天前
|
C#
C# 实现简单的 AOP(面向切面编程)
通过反射与委托实现AOP,可在方法执行前后动态添加日志、计时等横切逻辑,提升代码复用性与可维护性。
|
2天前
|
C#
C# 实现对象深拷贝(序列化方式)
利用 BinaryFormatter 实现对象深拷贝,适用于复杂对象复制。需标记类为 [Serializable],通过序列化与反序列化实现完整克隆,确保成员独立。
|
2天前
|
C# 容器
C# 实现依赖注入(简易版)
手动实现简易依赖注入容器,通过类型映射注册与解析接口和实现,管理对象创建与生命周期,提升代码解耦与可测试性。
|
2天前
|
C#
C# 利用特性(Attribute)实现自定义验证
通过自定义特性(如RequiredAttribute)标记类属性,利用反射实现数据验证逻辑。示例代码展示了如何在对象中检查必填字段,并输出验证错误信息,实现灵活的数据校验机制。

热门文章

最新文章