Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C# settingsi i app.config.exe file

[es] :: .NET :: C# settingsi i app.config.exe file

[ Pregleda: 1694 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mikelly

Član broj: 16730
Poruke: 389
77.222.15.*



Profil

icon C# settingsi i app.config.exe file10.11.2008. u 14:03 - pre 188 meseci
Kreiram ova dva settinga, jedan mi je connection string za bazu, a drugi mi je putanja do odredjenog direktorijuma. Taj drugi settings se naziva "Putanja".

Ja sad zelim da dinamicki, na osnovu unosa korisnika promijenim drugi setting. Kopao sam po net-u i dosao do sledeceg:

Code:

System.Configuration.ApplicationSettingsBase sb = (System.Configuration.ApplicationSettingsBase)WindowsApplication2.Properties.Settings.Default;
sb.PropertyValues["Putanja"].PropertyValue = "C:\\NoviDir";
sb.Save();


Kada procitam vrijednost settinga prije poziva Save metode:
Code:

MessageBox.Show(sb.PropertyValues["Putanja"].PropertyValue.ToString());

dobijem ispravnu vrijednost koja je originalno upisana u config fajl: "C:\\StariDir", ali se pozivom:
Code:

sb.Save()

config fajl ne mijenja, iako u help-u kazu da da save metod upravo to i radi, tj poziva SetPropertyValues odgovarajuceg Providera ("The Save method writes the current value of each settings property to its associated data store. For each property, this method calls the SetPropertyValues method on the associated settings provider. ")

Ja ne budi lijen, pa probaj na drugi nacin, preko tog Provider-a, uf:
Code:

System.Configuration.LocalFileSettingsProvider lfsp = new LocalFileSettingsProvider();
lfsp.ApplicationName = "WindowsApplication2";
SettingsContext sc = new SettingsContext();
System.Configuration.SettingsPropertyValueCollection spvc = lfsp.GetPropertyValues(sc, WindowsApplication2.Properties.Settings.Default.Properties);
MessageBox.Show(spvc["Putanja"].PropertyValue.ToString());
spvc["Putanja"].PropertyValue = "C:\\NoviDir";
spvc["Putanja"].SerializedValue = "C:\\NoviDir";
lfsp.SetPropertyValues(sc, spvc);
MessageBox.Show(spvc["Putanja"].PropertyValue.ToString());


Prvi MessageBox mi daje "C:\StariDir", a drugi MessageBox mi daje "C:\NoviDir", tako da se tu nesto desava, ali se to nikako ne reflektuje na config.exe fajl na disku, iako po pritisku na dugme sa gornjim kodom aplikacija dobro "zakopa" po disku.

Molio bih pomoc, ako neko ima iskustva sa ovim, ili neki guide na net-u, ono sto ima na MSDN-u je blago receno nedovoljno.

Pozdrav.
 
Odgovor na temu

Predrag Glumac
Luxembourg

Član broj: 167588
Poruke: 127
*.synapse.net.ua.



Profil

icon Re: C# settingsi i app.config.exe file10.11.2008. u 15:57 - pre 188 meseci
Da pogadjam - sve to radis iz Visual Studia ? Mislim, nisi kompajlirao aplikaciju i pokrenuo je iz Debug ili Release foldera ? Ako sam u pravu, onda je sve ok jer, kada pokrenes aplikaciju iz VS-a menja se config fajl iz Debug/Release foldera, a kada rekompajliras taj config se pregazi verzijom iz solution foldera.
 
Odgovor na temu

Mikelly

Član broj: 16730
Poruke: 389
77.222.15.*



Profil

icon Re: C# settingsi i app.config.exe file10.11.2008. u 19:19 - pre 188 meseci
U pravu si majstore, kad pokrenem iz debug foldera, pamti mi podesavanja. Sve izgleda ok. Ja to provjerim messagebox prije promjene i messagebox poslije promjene. Ponovno pokretanje exe fajla pamti poslednji upis. Ali, config.exe ostaje nepromijenjen (kao u solutionu) kad god ga otvorim, to vs radi, jelda?
 
Odgovor na temu

[es] :: .NET :: C# settingsi i app.config.exe file

[ Pregleda: 1694 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.