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

时间:2017-03-03 06:26:21

标签: c# app-config

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

例如,

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

1 个答案:

答案 0 :(得分:1)

不,你不能直接按照自己的意愿去做。

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

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其他想法和建议