[.NET 2.0] Configuratie-settings opslaan.

Pagina: 1
Acties:

  • whoami
  • Registratie: December 2000
  • Laatst online: 18:08
Ik ben even met de nieuwe Config classes aan het spelen in .NET 2.0. Normaal gezien zou het moeten mogelijk zijn om hiermee config. settings te wijzigen en op te slaan.

Ik heb deze code:
code:
1
2
3
4
5
6
Configuration c = ConfigurationManager.OpenExeConfiguration (ConfigurationUserLevel.None);

KeyValueConfigurationElement el = new KeyValueConfigurationElement ("test", "testvalue");

c.AppSettings.Add (el);
c.Save(ConfigurationSaveMode.Minimal), false);


Nu verwacht ik dat ik in m'n config. file een nieuw element 'test' heb, met als waarde 'testvalue'.
Nadat ik bovenstaande code heb uitgevoerd, kan ik at-runtime wel dit configuratie - element 'test' gaan ophalen.
Terwijl het programma runt, zie ik dat dit nieuwe element is toegevoegd aan m'n
applicationname.vshost.exe.config file, maar niet in de applicationname.exe.config file.
Als ik m'n applicatie afsluit, dan zijn m'n gedane wijzigingen ook verloren; maw, de ...exe.config file blijft ongewijzigd.
Heb ik het verkeerd begrepen dat je nu wijzigingen kan aanbrengen in de config. file en deze ook echt kunt persisteren, als het programma afgesloten is, of doe ik iets helemaal fouts ?

Ik heb ook al eens geprobeerd om een 'per user' config file te saven door dit te doen:
code:
1
2
3
4
5
6
Configuration c = ConfigurationManager.OpenExeConfiguration (ConfigurationUserLevel.PerUserRoamingAndLocal);

KeyValueConfigurationElement el = new KeyValueConfigurationElement ("test", "testvalue");

c.AppSettings.Add (el);
c.Save(ConfigurationSaveMode.Minimal), false);


(Dus PerUserRoamingAndLocal opgeven ipv None, maar ook hier vind ik nergens een configuratie-file, of ik moet echt met m'n ogen toe kijken; waar wordt die user spec. config file geplaatst ?)

https://fgheysels.github.io/


  • Flard
  • Registratie: Februari 2001
  • Laatst online: 10:54
Waarschijnlijk begrijp ik j niet, maar als je het hebt over 'gewone' Applicatie Settings, dan kun je het beste de settings designer van VS2005 gebruiken lijkt me.

Die maakt meteen een handige wrapper-class aan, met daarin typed accessors voor de verschillende properties.
Via de designer kun je ook per setting aangeven of ze al dan niet op User, Roaming User of Applicatiebasis gepersist moeten worden, en dat werkt perfect.


Of is er een bepaalde reden dat je dat niet wilt gebruiken?

  • Niek.NET
  • Registratie: Oktober 2005
  • Laatst online: 17:05
Je zou de SaveAs method kunnen gebruiken van c. Dan zou hij toch echt een filetje moeten wegschrijven lijkt mij.

Leuk experimentje trouwens.

* Niek.NET Denkt aan remote configuratiemanager

Edit:

Volgens mij zoek je dit: MSDN Forums - Persistent Application Settings

[ Voor 44% gewijzigd door Niek.NET op 04-04-2006 21:54 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 18:08
Flard, ik ben bekend met die 'settings designer', maar ik wil het doen zoals ik in m'n startpost aangaf.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 18:08
Het ziet er naar uit dat, als ik m'n test-appje gewoon run (en dus niet vanuit VS.NET), het gewoon werkt zoals ik het wil...
Het is slechts als ik het run vanuit vs.net, dat die settings in de vshost.exe.config file opgeslagen worden.

Eigenlijk, nu ik er over nadenk; dit gedrag is best wel goed. Je wilt nl. niet dat je config. file 'vervuild' geraakt met allerlei settings / nieuwe waarden als je je app runt vanuit VS.NET. Dan test je toch maar je applicatie, en zo blijft de echte config file (die je dus ook zult deployen) gevrijwaard van alle gefoefel.

[ Voor 42% gewijzigd door whoami op 05-04-2006 20:31 ]

https://fgheysels.github.io/


Verwijderd

Ik heb helaas wel wat meer problemen gehoord over het vshost.exe.

Menu: Project -> Properties -> Tab Debug -> Enable Visual Studio hosting proces


[edit]
Je settings in je bin\debug of bin\release zijn altijd een kopie van je project. Je kan dus niet je (originele) project settings vervuilen tijdens het debuggen.

[ Voor 40% gewijzigd door Verwijderd op 05-04-2006 20:38 ]


  • Vedett.
  • Registratie: November 2005
  • Laatst online: 21-02 17:46
whoami schreef op woensdag 05 april 2006 @ 20:26:
Het ziet er naar uit dat, als ik m'n test-appje gewoon run (en dus niet vanuit VS.NET), het gewoon werkt zoals ik het wil...
Het is slechts als ik het run vanuit vs.net, dat die settings in de vshost.exe.config file opgeslagen worden.

Eigenlijk, nu ik er over nadenk; dit gedrag is best wel goed. Je wilt nl. niet dat je config. file 'vervuild' geraakt met allerlei settings / nieuwe waarden als je je app runt vanuit VS.NET. Dan test je toch maar je applicatie, en zo blijft de echte config file (die je dus ook zult deployen) gevrijwaard van alle gefoefel.
Ik denk niet dat dat de reden is waarom je configs niet worden opgeslagen. Is het namelijk niet zo dat een config file altijd bij een bepaald process hoort? Bij de exe die je runt?? Dus als je via de vshost.exe runt, zal .Net je settings daarin opslaan. Gewoon default behaviour lijkt mij.

Gevolg is idd dat als je de applicatie gewoon gebruikt, de settings wel correct worden bewaard. Maar trouwens: Als je settings at-runtime moet gaan toevoegen. Zijn het dan geen user settings?? Ik denk dat je dan ook beter de user settings config files gebruikt.

  • Meekoh
  • Registratie: April 2005
  • Laatst online: 20-02 14:17
ik had hier laatst iets over gelezen in het gratis .NET Magazine blad. Weet niet meer precies wat er stond, heb het een beetje vlug doorgebladerd. Maar het is een gratis blad van MS dus je zou je ervoor kunnen opgeven. En je kan ook de oude magazines bestellen. Maar k zal wel eventjes dat artikeltje bestuderen.

Computer says no


  • whoami
  • Registratie: December 2000
  • Laatst online: 18:08
Vedett. schreef op woensdag 05 april 2006 @ 20:44:
[...]


Ik denk niet dat dat de reden is waarom je configs niet worden opgeslagen. Is het namelijk niet zo dat een config file altijd bij een bepaald process hoort? Bij de exe die je runt?? Dus als je via de vshost.exe runt, zal .Net je settings daarin opslaan. Gewoon default behaviour lijkt mij.
Dat zeg ik toch ?
Gevolg is idd dat als je de applicatie gewoon gebruikt, de settings wel correct worden bewaard. Maar trouwens: Als je settings at-runtime moet gaan toevoegen. Zijn het dan geen user settings?? Ik denk dat je dan ook beter de user settings config files gebruikt.
Ik weet wel voor wat ik user settings, en voor wat ik app settings moet gebruiken hoor. :z
Dit was gewoon ff een test app'je om wat met die nieuwe config classes in .NET 2.0 te spelen.
Moshe85 schreef op woensdag 05 april 2006 @ 20:56:
ik had hier laatst iets over gelezen in het gratis .NET Magazine blad. Weet niet meer precies wat er stond, heb het een beetje vlug doorgebladerd. Maar het is een gratis blad van MS dus je zou je ervoor kunnen opgeven. En je kan ook de oude magazines bestellen. Maar k zal wel eventjes dat artikeltje bestuderen.
Ik ben bekend met het .NET magazine; ben er al 5 jaar ofzo op geabboneerd.

[ Voor 22% gewijzigd door whoami op 05-04-2006 21:38 ]

https://fgheysels.github.io/


  • Vedett.
  • Registratie: November 2005
  • Laatst online: 21-02 17:46
Ai, bijna mijn neus eraf.

Misschien heb ik je TS verkeerd begrepen, maar dacht dat je het over "anders vevuil je de config file" had, en niet over processen die gebruik maken van die config.

Soit, zolang we er nu maar uit zijn
Pagina: 1