我知道我可以在AppConfig
中定义变量(键值)并在我的C#
代码中使用它。但问题是:是否可以在AppConfig
中定义变量并在AppConfig
中使用它(类似于全局常量)?
例如,
address = "8.8.8.8"
...
url = "jdbc..$address..."
...
答案 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其他想法和建议