我是修补app.config和xml的新手,我现在正在做一些我没写的代码重构。
目前我们有一个代码如下:
<setting name="FirstSetting" serializeAs="String">
<value>Data Source=C:\Documents and Settings\All Users\ApplicationData\Company ...;Persist Security Info=False</value>
我想做的是让它指向像${PROGRAMDATA}\Company\...
如何实现这一点,请记住,PROGRAMDATA并不总是指向C:\ProgramData
?
答案 0 :(得分:2)
我真的不想根据其他响应在代码中更改它,因为这样就无法将其作为配置设置。
事实证明,%ProgramData%\Company...
是在此上下文中使用环境变量的正确方法。
答案 1 :(得分:2)
使用
Environment.ExpandEnvironmentVariables(stringFromConfig);
它使用精确值替换字符串中的所有现有环境变量,如%ProgramData%。
答案 2 :(得分:1)
是的,在你的环境中写一下就好。然后在运行时替换$ {PROGRAMDATA}:
var setting = Properties.Settings.Default.FirstSetting;
setting = setting.Replace("${PROGRAMDATA)",
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
答案 3 :(得分:0)
考虑到PROGRAMDATA
是一个环境变量,您可以使用C#
String EnviromentPath = System.Environment.GetEnvironmentVariable("PROGRAMDATA", EnvironmentVariableTarget.Machine);
答案 4 :(得分:0)
你可以使用
var programDataValue = Environment.GetEnvironmentVariable("PROGRAMDATA");
如果它来自环境变量。