Wie Kriege ich ApplicationSettings aus einem geladenen App.config-Datei?
Ist es möglich, den Zugriff auf die Werte aus der applicationSettings Abschnitt eines geladenen app.config-Datei?
Ich gefunden habe, ein Beispiel Wie kann ich abrufen, appSettings, aber ich kann nicht herausfinden, wie Zugriff auf applicationSettings diese Weise.
Du musst angemeldet sein, um einen Kommentar abzugeben.
applicationSettings readonly während der Laufzeit. Sie können festlegen/ändern Sie entweder über ein text-editor in der app.config-Datei direkt, aber es wird empfohlen, öffnen Sie die Projekteigenschaften im Visual Studio, und wählen Sie die Registerkarte "Einstellungen". Es ist wichtig, den richtigen Umfang:
Zum Beispiel, wenn Sie erstellen myOwnSetting in Ihrem Projekt WindowsFormsTestApplication1 wie folgt:
wird es fügen Sie den folgenden, um die Anwendung der app.config-Datei:
Erstellt Visual Studio C# - code, um Zugriff auf diese Einstellung automatisch (dies ist, warum Sie es tun sollten, das Projekt Eigenschaften und nicht via text editor) - nachdem Sie die änderungen gespeichert haben, die im gleichen namespace Sie können Lesen Sie seinen Wert in der Anwendung einfach über den folgenden code:
Angesichts der
applicationSettings
in der Liste oben, das würde das abrufen der string "Hallo!" für die variablecurrentValue
.Hinweis, dass, wenn Sie erstellt haben myOwnSetting für die "User" scope, dann ist es gespeichert ist, in einen Abschnitt namens
<userSettings>
statt<applicationSettings>
, aber man kann immer noch darauf zugreifen mit dem code in der Zeile darüber.Weiterer Unterschied von Bereich "Benutzer" Einstellungen ist, dass Sie über lese-und Schreibzugriff, D. H. es ist erlaubt, Folgendes zu tun:
Wenn Sie versuchen, das gleiche mit dem "Application" - Einstellung Bereich myOwnSetting, würde das Ergebnis in eine compile-time Fehlermeldung, die Ihnen mitteilt, dass es schreibgeschützt ist.
Wenn Sie erneut die Anwendung starten, werden Sie feststellen, dass myUserSetting hat sich geändert auf den Wert "Etwas anderes" - aber der alte Wert noch in der app.config. Warum ist das so? Der Grund dafür ist, dass es als default - Wert- und wie ich bereits sagte, die "User" scope gebunden ist, um das Benutzerprofil. Als Folge, wird der Wert "Etwas anderes" ist gespeichert in
in einer Datei namens
User.config
, die wie folgt aussieht:Kann man nicht genau sagen, wie Sie der Pfad wird automatisch erstellt, indem die .NET Framework, und es wird anders Aussehen als auf dem PC. Aber Sie können sehen, dass die Benutzer-id der Windows-Benutzer-ID des aktuellen Benutzers, FIRMNAME ist Teil der assembly Informationen, die Sie angegeben haben, und die assembly Namen und die version ist auch im Pfad verwendet.
Hinweis:
Den
<sectionGroup>
mit<section>
Erklärung verpflichtend ist und dessen Attribut name übereinstimmen muss mit dem namespace. Der namespace muss genau einmal in der Konfiguration, und es gibt nur eineapplicationSettings
Abschnitt erlaubt.Als Sie sehen konnte, in der config-Datei den namespace explizit erwähnt, es (
WindowsFormsTestApplication1.Properties.Settings
). Als eine Konsequenz, wenn Sie möchten, um Zugriff auf die Einstellungen von code, der nicht in der gleichen namespace, müssen Sie möglicherweise verwenden Sie einen vollständig qualifizierten Verweis. Nachdem das gesagt ist, seien Sie vorsichtig, wenn Sie kopieren Sie die gesamte<applicationSettings>...</applicationSettings>
Abschnitt von einer Anwendung config-anderen - müssen Sie möglicherweise ändern Sie den namespace in der target-config danach.Wenn Sie mit dem Einstellungs-Designer (Registerkarte "Einstellungen" in Ihr Projekt), wird es erstellt eine Datei mit dem Namen
Settings.Settings
(zusammen mitSettings.Designer.cs
Zugriff auf die sessings über C# - code) im Abschnitt "Eigenschaften" des Projekts. Dies ist eine Kopie der Einstellungen werden gespeichert in IhremWeb.config
oderApp.config
- Datei (abhängig von Ihrem Projekt geben, nur für Anwendungsbereich-Einstellungen - Benutzer-Bereich die Einstellungen gespeichert sind, basierend auf der Benutzer-Profil). Können Sie weitere*.settings
Dateien und verwenden Sie Sie (wie es beschrieben wird hier).Wenn Sie nicht mit dem Einstellungs-designer, oder, wenn Sie mit einem tool wie LinqPad, müssen Sie möglicherweise verwenden Sie einen anderen Ansatz. Bedenken Sie:
Können Sie Lesen string-Typ
applicationSettings
durch die Behandlung die Konfiguration alsXDocument
. Das Beispiel beschränkt sich auf den string-Typ, und Sie abrufen können, die Einstellung von der app.config-Beispiel von oben wie folgt aus:var value=GetApplicationSetting("myOwnSetting", "WindowsFormsTestApplication1.Properties.Settings");
Ebenso können Sie erstellen, die eine ähnliche Funktion GetUserSetting für die Standard -
<userSettings>
Abschnitt: kopieren Sie Einfach den code oben, benennen Sie den Namen der Funktion und ersetzenapplicationSettings
imxPathStr
durchuserSettings
.Es ist ein upgrade-Methode für den Benutzer verfügbaren Einstellungen, die beschrieben wird hier. Mehr details über die Stelle, wo die Benutzereinstellungen gespeichert sind, können gefunden werden es.
<appSettings>
- Abschnitt in der Konfiguration funktioniert anders, da es keine Unterscheidung zwischen "Benutzer" und "Application" scope und es nicht unterstützt unterschiedlichen Datentypen, nur strings. Es ist jedoch möglich, auf einfache Weise Lesen und schreiben die Konfigurations-Schlüssel/- Werte.Wenn Sie interessiert sind, den code, können Sie es hier finden (auf stackoverflow):
wie Lesen/schreiben von config-Einstellungen von appSettings
Wenn Sie unsicher sind, ob Sie sollten
AppSettings
oderapplicationSettings
, dann Lesen Sie diese, bevor Sie entscheiden.Wie hast du die Einstellungen? Mit den VS-Einstellungen-designer? Wenn dem so ist sollte es schaffen Sie eine stark typisierte Klasse, die den Zugriff auf Sie mit. Dies ist in der Regel über
Properties.Settings.Default.SettingName
Ich denke, dass es bevorzugt, die Verwendung der applicationSettings eher als appSettings, aber die Programm-Einstellungen sind schreibgeschützt zur Laufzeit, dh Sie können nicht erstellen Sie aus dem code, aber es ist möglich, erstellen und hinzufügen appSettings zur Laufzeit glaube ich. Ich stellte eine Frage über die Unterschied
finden Sie weitere Informationen aus msdn
Sie könnten laden Sie die config-Datei in "XmlDocument" ermittelt werden und die applicationSettings
aus dem dom-Objekt .
Hier ist das Beispiel, das ich gefunden, laden Sie die config-Datei in dom-Objekt :