下面的代码不起作用。它不会从 TestApp.Config
文件中获取应用程序设置。你知道为什么吗?我该如何解决?
public void GetConfig()
{
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"C:\dev\VS\ProofOfConcept\ProofOfConcept\TestApp.config");
var a = ConfigurationManager.AppSettings;
}
最佳答案
这post可能有帮助:
在此处发布的解决方案中,有一个方法 ResetConfigurationMechanism()
,您应该在调用 CurrentDomain.SetData(...);
之后调用该方法。
private static void ResetConfigMechanism()
{
typeof(ConfigurationManager)
.GetField("s_initState", BindingFlags.NonPublic | BindingFlags.Static)
.SetValue(null, 0);
typeof(ConfigurationManager)
.GetField("s_configSystem", BindingFlags.NonPublic | BindingFlags.Static)
.SetValue(null, null);
typeof(ConfigurationManager)
.Assembly.GetTypes()
.Where(x => x.FullName ==
"System.Configuration.ClientConfigPaths")
.First()
.GetField("s_current", BindingFlags.NonPublic | BindingFlags.Static)
.SetValue(null, null);
}
关于c# - 如何使用特定的应用程序配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15119132/