2010-08-31 44 views
0

我无法写入.Net3.5中的App.conf。.Net3.5中的app.config

根据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:\用户\ MYUSER \ SVN \ CIS \大会”)

+0

你能告诉我们你是如何尝试写入设置?你的配置文件位于哪里? – jgauffin 2010-08-31 12:32:58

回答

1

这为我工作:

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

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

这是我搜索thx的'c.Value' – Tokk 2010-08-31 19:43:14