Frage

Ich bin wirklich neu in .NET und ich habe immer noch nicht die hängen, wie Konfigurationsdateien arbeiten.

Jedes Mal wenn ich auf Google-Suche über das ich Ergebnisse über web.config, aber ich schreibe eine Windows Forms-Anwendung.

Ich fand heraus, dass ich den System.Configuration Namespace verwenden, aber die Dokumentation ist nicht zu helfen.

Wie kann ich festlegen, dass meine Config-Datei XYZ.xml ist? Oder hat es eine „default“ Namen für die Konfigurationsdatei? Ich habe immer noch nicht verstanden.

Auch, wie kann ich einen neuen Abschnitt zu definieren, muss ich wirklich eine Klasse erstellen müssen, die von Configuration erbt?

Ich möchte nur eine Konfigurationsdatei haben mit einigen Werten wie folgt aus:

<MyCustomValue>1</MyCustomValue>
<MyCustomPath>C:\Some\Path\Here</MyCustomPath>

Gibt es eine einfache Möglichkeit, es zu tun? Können Sie auf einfache Weise erklären, wie von / zu einer einfachen Konfigurationsdatei lesen und zu schreiben?

War es hilfreich?

Lösung

Sie möchten ein App.Config verwenden.

Wenn Sie ein neues Element zu einem Projekt hinzufügen gibt es Konfigurationsdatei so genannte Anwendungen. Fügen Sie das.

Dann Sie Schlüssel in der Konfiguration / appSettings Abschnitt hinzufügen

Wie:

<configuration>
 <appSettings>
  <add key="MyKey" value="false"/>

Zugriff auf die Mitglieder, indem Sie

System.Configuration.ConfigurationSettings.AppSettings["MyKey"];

Dies funktioniert in .net 2 und höher.

Andere Tipps

Klärung der vorherigen Antworten ...

1) Fügen Sie eine neue Datei zu Ihrem Projekt (Add-> Neue Artikel-> Anwendungskonfigurationsdatei)

2) Die neue Konfigurationsdatei in Projektmappen-Explorer als App.Config angezeigt wird.

3) Fügen Sie Ihre Einstellungen in diese Datei als Vorlage die folgenden mit

<configuration>
  <appSettings>
    <add key="setting1" value="key"/>
  </appSettings>
  <connectionStrings>
    <add name="prod" connectionString="YourConnectionString"/>
  </connectionStrings>
</configuration>

4) abrufen sie wie folgt aus:

private void Form1_Load(object sender, EventArgs e)
{
    string setting = ConfigurationManager.AppSettings["setting1"];
    string conn = ConfigurationManager.ConnectionStrings["prod"].ConnectionString;
}

5) Wenn gebaut, wird Ihre Ausgabe-Ordner eine Datei namens enthalten .exe.config Das wird eine Kopie der Datei App.config sein. Keine weiteren Arbeiten sollten von den Entwicklern getan werden müssen, um diese Datei zu erstellen.

Von einem schnellen Lesen der vorherigen Antworten, sie sehen richtig, aber es sieht nicht aus wie jemand die neuen Konfigurationsmöglichkeiten in VS 2008 erwähnte Es app.config noch verwendet (bei der Kompilierung auf YourAppName.exe.config kopiert ), aber es ist ein UI-Widget Eigenschaften festlegen und deren Typen specifiy. Doppelklicken Sie auf Settings.settings in Ihrem Projekt „Eigenschaften“ -Ordner.

Der beste Teil ist, dass dieses Angebot von Code Zugriff auf typsicher ist - der Compiler wie Tippfehler die Eigenschaftsnamen offensichtliche Fehler zu fangen. Zum Beispiel kann eine Eigenschaft myConnectionString in app.config genannt würde, wie zugegriffen werden:

string s = Properties.Settings.Default.MyConnectionString;

Sie sollten eine Datei App.config (sehr ähnlich web.config) erstellen

Sie sollten direkt auf Ihrem Projekt klicken, fügen Sie neue Artikel, neue „Application-Konfigurationsdatei“.

Stellen Sie sicher, dass Sie mit System.Configuration zu Ihrem Projekt hinzufügen.

Dann können Sie Werte, um es hinzuzufügen

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="setting1" value="key"/>
  </appSettings>
  <connectionStrings>
    <add name="prod" connectionString="YourConnectionString"/>
  </connectionStrings>
</configuration>

    private void Form1_Load(object sender, EventArgs e)
    {
        string setting = ConfigurationManager.AppSettings["setting1"];
        string conn = ConfigurationManager.ConnectionStrings["prod"].ConnectionString;
    }

Nur eine Notiz, nach Microsoft , Sie sollten Configuration statt Configuration verwenden. (Siehe Bemerkungen Abschnitt)  „Die Configuration Klasse bietet Abwärtskompatibilität. Für neue Anwendungen sollten Sie die Konfigurationsmanager-Klasse oder WebConfigurationManager Klasse verwenden, statt.“

Der Standardname für eine Konfigurationsdatei ist [yourexe] .exe.config. So wird notepad.exe eine Konfigurationsdatei notepad.exe.config genannt hat, im selben Ordner wie das Programm. Dies ist eine allgemeine Konfigurationsdatei für alle Aspekte der CLR und Rahmen, aber Ihre eigenen Einstellungen unter einem <appSettings> Knoten enthalten kann.

Das <appSettings> Element schafft eine Auflistung von Namen-Wert-Paaren, die als System.Configuration.ConfigurationSettings.AppSettings zugegriffen werden kann. Es gibt keine Möglichkeit, Änderungen in der Konfigurationsdatei zu speichern, jedoch.

Es ist auch möglich, eigene Elemente in einer Konfigurationsdatei hinzufügen - zum Beispiel eine strukturierte Einstellung zu definieren - durch Erstellen einer Klasse, die IConfigurationSectionHandler implementiert und an die <configSections> Element der Konfigurationsdatei hinzufügen. Sie können es dann zugreifen, indem ConfigurationSettings.GetConfig aufrufen.

.NET 2.0 fügt eine neue Klasse, System.Configuration.ConfigurationManager, die mehrere Dateien, mit pro-Benutzer-Überschreibungen von pro-Systemdaten unterstützt. Es unterstützt auch wieder auf Einstellungsdateien geändert Konfigurationen zu speichern.

Visual Studio erstellt eine Datei namens App.config, die Kopien in den EXE-Ordnern, um sich mit dem richtigen Namen, wenn das Projekt erstellt wird.

Die beste (IMHO) Artikel über .NET-Anwendung Konfiguration ist auf Codeproject Entwirren Sie die Geheimnisse von .NET 2.0 Konfiguration . Und mein nächstes Lieblings (kürzere) Artikel über Abschnitte in .net Konfigurationsdateien ist Abschnitt Handlers verstehen - App .config Datei .

In Windows Forms, haben Sie eine app.config, die sehr ähnlich ist web.config. Aber da, was ich sehe Sie es brauchen für benutzerdefinierte Werte sind, schlage ich vor Einstellungen verwenden. Um dies zu tun, öffnen Sie Ihre Projekteigenschaften, dann zu den Einstellungen. Wenn eine Einstellungsdatei ist nicht vorhanden einen Link müssen zu erstellen. Dann können Sie die Einstellungen in die Tabelle hinzufügen, die Sie dort sehen, die beide die entsprechenden XML erzeugen würden, und eine Settings-Klasse, die verwendet werden kann, um zu laden und die Einstellungen zu speichern. Die Einstellungen Klasse wird so etwas wie DefaultNamespace.Properties.Settings genannt. Dann können Sie Code verwenden, ähnlich wie:

using DefaultNamespace.Properties;

namespace DefaultNamespace {
    class Class {
        public int LoadMySettingValue() {
            return Settings.Default.MySettingValue;
        }
        public void SaveMySettingValue(int value) {
            Settings.Default.MySettingValue = value;
        }
    }
}

ich mit den anderen Antworten zustimmen, dass Sie app.config zeigen. Anstatt jedoch Werte direkt aus app.config lesen, sollten Sie eine Utility-Klasse erstellen (AppSettings der Name ich verwende), sie zu lesen und sie als Eigenschaften aus. Die AppSettings Klasse kann zu aggregieren Einstellungen von mehreren Geschäften verwendet werden, wie zum Beispiel Werte von app.config und Anwendungsversion Info von der Baugruppe (Assembly und Assembly).

Eine sehr einfache Möglichkeit, dies zu tun, ist Ihr Ihr eigener Settings zu verwenden Klasse .

System.Configuration.ConfigurationSettings.AppSettings [ "MyKey"];

AppSettings ist veraltet und wird jetzt als veraltet angesehen. [ Link ]

der Abschnitt appSettings der app.config Zusätzlich wird durch den Abschnitt application ersetzt.

Als jemand anders erwähnt, sollten Sie System.Configuration.ConfigurationManager verwenden [ Link ], das ist neu für .Net 2.0

Welche Version von .Net und VS sind Sie mit?

Wenn Sie das neue Projekt erstellt, eine Datei in Ihrer Lösung namens app.config haben sollte, das heißt die Standardkonfigurationsdatei.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top