app.config в .Net3.5 - PullRequest
       25

app.config в .Net3.5

0 голосов
/ 31 августа 2010

Я не могу написать файл App.conf в .Net3.5.

Согласно этот вопрос идет как в .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 Ответ

1 голос
/ 31 августа 2010

Это сработало для меня:

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

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