我无法写入.Net3.5中的App.conf。
根据this问题,它在.Net2.0中就好了,但它不起作用。我可以从配置中读取这样的内容:
var connStr = ConfigurationManager.ConnectionStrings[ApplicationConstants.CisConnectionStringName].ConnectionString
但是我不可能在该文件中写入,因为编译器认为由于安全级别而不可能。
我用谷歌搜索了几个小时,但没有找到解决办法。我希望你能提供帮助。
THX
修改
我尝试了不同的方式:
ConfigurationManager.ConnectionStrings[ApplicationConstants.CisConnectionStringName].ConnectionString = "string";
也...
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
NetSectionGroup netSectionGroup = config.GetSectionGroup("system.net") as NetSectionGroup;
netSectionGroup.Settings.HttpWebRequest.UseUnsafeHeaderParsing = true;
config.SaveAs(@"C:\ProgramData\test.config", ConfigurationSaveMode.Full);
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"C:\ProgramData\test.config");
...也
string exePath = System.Reflection.Assembly.GetEntryAssembly().CodeBase.Substring(0, System.Reflection.Assembly.GetEntryAssembly().CodeBase.LastIndexOf('/'));
var configuration = ConfigurationManager.OpenExeConfiguration(exePath);
...
(示例对于给定路径无效,因为我测试了它们在哪里; - ))
但没有任何效果。配置文件与.exe位于同一目录中(当前为“C:\ Users \ MyUser \ SVN \ CIS \ Assemblies”)
答案 0 :(得分:1)
这对我有用:
System.Configuration.Configuration config =ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["oldPlace"].Value = "3";
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");