c# - 在 AppConfig 中定义变量 - 在此文件中使用它们

标签 c# app-config

我知道我可以在 AppConfig 中定义变量(键值)并在我的 C# 代码中使用它。但是,问题是:是否可以在 AppConfig 中定义变量并在 AppConfig 中使用它(类似于全局常量)?

例如,

address = "8.8.8.8"
...
url = "jdbc..$address..."
...

最佳答案

不,你不能随心所欲地直接去做。

然而,您可以做的是自己解析代码中的值,并在配置文件中查找其他变量。像这样:

public string GetFromConfigWithVars(string key)
{
    string value = ConfigurationManager.AppSettings[key];

    foreach (string var in value.Split('{', '}'))
    {
        string val = ConfigurationManager.AppSettings[var];
        value = value.Replace($"{{{var}}}", val);
    }

    return value;
}

然后,你可以有这样的配置:

<appSettings>
   <add key="var1" value="First"/>
   <add key="var2" value="Last"/>
   <add key="myKey" value="{var1}----{var2}"/>
</appSettings>

并在代码中调用它:string myValue = this.GetFromConfigWithVars("myKey")

这将返回:First----Last

你也可以看看here其他想法和建议

关于c# - 在 AppConfig 中定义变量 - 在此文件中使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42572068/

相关文章:

c# - Visual Studio 中开发人员特定的 app.config/web.config 文件

laravel - 如何在 Laravel-4 中包含针对不同环境的自定义配置

c# - ASP.NET 无法解析 xml!检查文件路径

c# - "Neighbor function"使用 A* 算法优化解决 8-Puzzle

c# - 如何在 app.config 文件中设置相对路径?

c# - app.config 中的 FTP 连接

c# - 自定义配置部分属性不是配置元素

C# arraylist 搜索对象属性问题

c# - 通过 PublicKeyToken 防止外部程序集注入(inject)

C# ListView 项目图像