Laden...

App.Config: UserSettings auslesen? (VS 2005)

Letzter Beitrag vor 17 Jahren 9 Posts 22.983 Views
App.Config: UserSettings auslesen? (VS 2005)

Hi,

wenn ich mir mittels meinen Projektoptionen unter Settings Konfigurationseinstellungen erstelle, sieht das in der app.config so aus:

[php]
<userSettings>
<MyProject.Properties.Settings>
<setting name="NewObjectName" serializeAs="String">
<value>CADOBJEKTTYP</value>
</setting>
<setting name="TableObjects" serializeAs="String">
<value>CADOBJEKTE</value>
</setting>
<setting name="TableTexts" serializeAs="String">
<value>CADTEXT</value>
</setting>
<setting name="TableVarTexts" serializeAs="String">
<value>CADVARTEXT</value>
</setting>
<setting name="TableGraphics" serializeAs="String">
<value>CADGRAPHIK</value>
</setting>
<setting name="TableBarcode" serializeAs="String">
<value>CADBARCODE</value>
</setting>
<setting name="ExcelFileDirectory" serializeAs="String">
<value>C:\Dokumente und Einstellungen\Administrator\Desktop\ExcelFiles</value>
</setting>
<setting name="CustomerFileName" serializeAs="String">
<value>Kunden.xls</value>
</setting>
</MyProject.Properties.Settings>
</userSettings>
[/php]

Wie kann ich nun aus dem SourceCode auf diese Settings zugreifen?

Habs so versucht:


ConfigurationManager.AppSettings["CustomerFileName"];

aber das klappt nicht. Es gibt aber leider keinen solchen aufruf:


ConfigurationManager.UserSettings["CustomerFileName"];

Wie kann ich denn meine Settings dann auslesen?

Danke,
winx

Gehts mit: Properties.Settings.Default.XXXX ???

ganz genau so gehts 👍

Kann ich den irgendwie diese app.config auch von "außen" also ohne visual studio editieren?

Hallo,
bin zwar selbst erst Anfänger, aber die Config Dateien sind ganz normale XML-Dateien und die kannst du mit jedem beliebigen Editor öffnen... wie z.B. den Windows-Editor 😁

Gruß

HD

Man lernt auch im Alter nie aus

Mit 37 Fachinformatiker
Mit 38 (im August) Programmierer

das is mir klar, tortzdem danke 😁 , hab aber gemeint mit ner "schönen" oberfläche, wie bspw die im Visual Studio...

oder ne andere Möglichkeit:

ich kann nun ja mit Properties.Settings.Default.NewObjectName den Wert auslesen.

Kann ich diesen Wert dann auch zur Laufzeit permanent setzen ?

Also ich schmeiss nun einfach mal ein Code-Block rein, vielleicht kannst ja was mit Anfangen... aufjedenfall ist das so, das wenn man das Prog dann aufruft, der Eintrag dann in der XXX.exe.config steht.... wie was genau passiert kann ich leider nich sagen, weil das Kapitel rechte...hmmm... bescheiden erklärt ist 😉


using System;
using System.Collections.Generic;
using System.Collections;
using System.Configuration;
using System.Text;

namespace Kapitel9Lektion4
{
    class Program
    {
        static void Main(string[] args)
        {
            WriteSettings();
            Console.ReadLine();
        }

        public static void WriteSettings()
        {
            try
            {
                ConfigurationSection conSec;
                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

                if (config.Sections ["LabSection"] == null)
                {
                    conSec = new LabSection();
                    config.Sections.Add("LabSection", conSec);
                    conSec.SectionInformation.ForceSave = true;
                    config.Save(ConfigurationSaveMode.Full);
                }
            }
            catch (ApplicationException ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }
}

Achso, LabSection ist eine Klasse, aber in der steht nichts drin.... und die normale App.config sieht so aus:


<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key ="Foo" value ="Hello World"/>  
  </appSettings>
</configuration>

Vielleicht hast ja den Durchblick 🤔

Gruß

HD

P.S. und wegen XML-Editor schau hier mal:
http://www.soft-ware.net/internet/publishing/scripts/xml/index.asp

Man lernt auch im Alter nie aus

Mit 37 Fachinformatiker
Mit 38 (im August) Programmierer

und wie kann ich die geänderten Settings nun für die UserSettings speichern?

so gehts nicht:

            
Properties.Settings.Default.ExcelFileDirectory = "sfdjhfdsdf";
Properties.Settings.Default.Save();

hat da jemand nen Tipp?

Der Scope der Setting muss auf User und nicht Application sein, dann sollte das funktionieren. Wenn du die Settings unbedingt von Hand bearbeiten willst, dann drück doch einfach F7, wenn du in der Designermaske der Properties bist. VS bietet einen schönen XML-Editor =)

Gruss,
.unreal