You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将C#中硬编码的Dictionary<string,string>映射改为从文件读取

实现步骤

1. 新增配置文件

在解决方案根目录新增JSON格式的配置文件,命名为ProjectCustomerMapping.json,内容和原有硬编码的映射关系对应:

{
  "Lara": "Lara",
  "Tiger": "Lara",
  "Panther": "Lara",
  "Dice": "Dara",
  "bird": "Dara"
}

配置文件创建完成后右键文件→属性,做两项设置:

  • 生成操作选择「内容」
  • 复制到输出目录选择「如果较新则复制」
    确保程序运行时可以正常读取到该文件。

2. 编写配置读取逻辑

不用修改原有业务查询代码,只需要把原来硬编码的字典初始化改成从文件读取反序列化即可,.NET Core 3.0+/NET 5+ 可以直接用自带的System.Text.Json处理,不用额外安装第三方包;如果是.NET Framework环境可以替换为Newtonsoft.Json(Json.NET)实现反序列化。
修改后的字典定义和读取代码如下:

using System.IO;
using System.Text.Json;

// 原有字典改成从配置加载
public static Dictionary<string, string> projectCustomerNameMapping = LoadMappingConfig();

// 配置读取方法
private static Dictionary<string, string> LoadMappingConfig()
{
    try
    {
        var configPath = Path.Combine(AppContext.BaseDirectory, "ProjectCustomerMapping.json");
        var jsonContent = File.ReadAllText(configPath);
        return JsonSerializer.Deserialize<Dictionary<string, string>>(jsonContent) ?? new Dictionary<string, string>();
    }
    catch
    {
        // 配置加载失败时返回兜底映射,避免程序直接崩溃
        return new Dictionary<string, string>()
        {
            {"Lara","Lara" },
            {"Tiger","Lara" },            
            {"Panther","Lara" },            
            {"Dice","Dara" },
            {"bird","Dara" }
        };
    }
}

如果使用Newtonsoft.Json,只需要把反序列化代码替换为JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonContent)即可。

3. 验证运行

因为最终生成的还是Dictionary<string, string>结构,你原来的匹配获取客户名称的代码不需要做任何调整,直接运行即可生效,后续修改映射关系只需要改配置文件,不需要重新编译代码。


内容的提问来源于stack exchange,提问作者ZZZSharePoint

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:42:02