24. august 2006 - 14:48Der er
16 kommentarer og 1 løsning
Gemme værdier i config filen
Hej
Jeg prøver at hente / gemme en database connection streng og en mail server streng (brugt til at sende mail via en SmtpClient)i mit programs config fil således:
public string MailServer { get { return MyApp.Properties.Settings.Default.MailServerName; } set { MyApp.Properties.Settings.Default.MailServerName = value; MyApp.Properties.Settings.Default.Save(); } } [/CODE]
Begge strenge er oprettet v.h.a. Projektets Property Settings faneblad i VS 2005.
Database Connection strengen fungere fint med hent/gem, men mail strengen kan jeg kun hente - ikke gemme. Den kommer ikke med nogen fejl, den gemmer bare ikke...
Nogen der kan sige mig hvorfor? Eller som har en anden løsning til at gemme den mail streng i den config fil?
Det er sikkert fordi du kører i debug mode? Du skal huske hver gang du kører bliver en ny konfig fil kopieret til din debug folder. Husk det er den fil du skal tjekke.
og som jeg skriver, så gemmer den fint med Connection String, men ikke med andre settings - der er jo selvf. også forskel på hvordan man gemmer, men for hulen da - Save() betyder vel Save()???
Næsten samme måde. Prøv min og se om det virker for dig. Det virker for mig: System.Configuration.Configuration m_config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
Jeg bruger 2.0. Du kan kun skrive til din app.config fra 2.0. Prøv minkode og se om det ikke vil virke. Er jeg ret overbevist om det vil. Så tilret det til din kode.
Jeg må indrømme, at jeg finder det noget mystisk, at vi ikke har samme tag navn i xml'en - appSettings vs. applicationSettings - og at din Value er en attribut, hvor min er et childtag.
Jeg har ikke lavet xml selv - fik den autogeneret da jeg bruger Settings fanebladet i nit projekts properties.
Jeg fik ikke ændret Scope attributten til user. Det er åbenbart kun ConnectionStrings der kan ændres i runtime, hvis de er sat til Application i Scope. Andre tilføjede værdier skal sættes til User i Scope.
Smid et svar som tak for hjælpen, og et skub, der fik mig til at lede længere inde og tænke lidt mere over, hvad jeg havde gang i ;)
Okay det var da så lidt. Selv om jeg ikke fattede en krone af hvad der var galt med hensyn til user og applikation scope :D Men jo os vigtigst du har styr på det :D
hvis du går ind i dit projekts properties og vælger fanebladet Settings (kræver selvf. VS 2005), så kan man her for hver setting sætte Scope.
Ydermere er der et link øverst i det faneblad, der henviser til en MSDN forklaring på Settings. Det var den jeg "kom til" at læse, og faldt over det med scope.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.