.Net3.5中的app.config

时间:2010-08-31 12:21:37

标签: c# .net visual-studio-2010 .net-3.5 app-config

我无法写入.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”)

1 个答案:

答案 0 :(得分:1)

这对我有用:

 System.Configuration.Configuration config =ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

        config.AppSettings.Settings["oldPlace"].Value = "3";     
        config.Save(ConfigurationSaveMode.Modified);
        ConfigurationManager.RefreshSection("appSettings");