2016-07-02 15 views
-1

Ich bin gerade dabei, das "file" -Attribut meiner AppSettings-Konfiguration zu setzen und die enthaltenen XML-Einstellungen zur Laufzeit zu referenzieren. Ich kann dies vor dem Kompilieren nicht durchführen, da sich die XML-Einstellungsdatei basierend auf den lokalen Maschineneinstellungen ändert.Ändern von appSettings "Datei" -Attribut zur Laufzeit

Nachdem die obigen Änderungen vorgenommen wurden, enthält die temporäre Variable jedoch nur das Element "Password" und kann die anderen Einstellungen im Dateipfad nicht abrufen. Ich weiß, dass das Dateiattribut gesetzt ist, aber aus irgendeinem Grund ist die referenzierte Einstellung immer noch ausgeblendet. Die Datei application.settings.xml sieht so aus ...

<?xml version="1.0" encoding="utf-8"?> 
<appSettings> 
    <add key="ServerLocation" /> 
    <add key="PerforceURI" value="yuhsgbyluvgblsg" /> 
</appSettings> 

Jede Hilfe wird sehr geschätzt!

+0

Warum verwenden Sie nicht stattdessen ein UserSetting? –

+0

Wenn sich die Datei pro Benutzer ändert, glaube ich nicht, dass app.settings der richtige Ort ist, um diesen Speicherort anzugeben. Es sollte Teil eines Benutzerprofils sein (falls Sie Ihren Benutzer irgendwo speichern) –

Antwort

0

Ich werde nicht versuchen, zu kritisieren, was Sie tun, aber bieten Ihnen eine einfache Erklärung dessen, was Sie sehen.

ConfigurationManager.RefreshSection aktualisiert den Abschnitt in der Configuration Instanz, die von static ConfigurationManager verwendet wird. Es wirkt sich nicht auf die Configuration Instanz aus, die Sie erstellt haben, indem Sie OpenExeConfiguration aufrufen; Damit dies geschieht, müssten Sie erneut OpenExeConfiguration anrufen.