Heim > Backend-Entwicklung > C++ > Wie kann ich die App.config zur Laufzeit dynamisch ändern, ohne den Standard zu überschreiben?

Wie kann ich die App.config zur Laufzeit dynamisch ändern, ohne den Standard zu überschreiben?

Linda Hamilton
Freigeben: 2025-01-25 17:36:10
Original
482 Leute haben es durchsucht

How Can I Dynamically Change the app.config at Runtime Without Overwriting the Default?

Ändern Sie die Standard-App.config während der Laufzeit dynamisch

Um Module, die Konfigurationselemente erfordern, dynamisch zu laden, ist eine Möglichkeit erforderlich, eine neue app.config im Speicher zu erstellen, die verschiedenen Abschnitte des Moduls zu konsolidieren und die Anwendung von der Anwendung verwenden zu lassen, ohne die Standard-app.config zu überschreiben.

Für dieses Problem haben wir eine Lösung gefunden, die der in der Frage vorgeschlagenen ähnelt. Der bereitgestellte Code führt jedoch nicht zu den erwarteten Ergebnissen. Die in der verknüpften Frage erwähnte Methode funktioniert nur, wenn sie vor der Konfiguration des Systems für die erste Verwendung durchgeführt wird. Zwischengespeicherte Werte in der ClientConfigPaths-Klasse verhindern, dass neue Konfigurationen nach der ersten Verwendung gelesen werden.

Daher löscht diese Lösung auch diese zwischengespeicherten Werte. Der folgende Code erfüllt diese Aufgabe:

<code class="language-csharp">public abstract class AppConfig : IDisposable
{
    // ...
}

private class ChangeAppConfig : AppConfig
{
    // ...

    private static void ResetConfigMechanism()
    {
        // ...

        typeof(ConfigurationManager)
            .Assembly.GetTypes()
            .Where(x => x.FullName ==
                        "System.Configuration.ClientConfigPaths")
            .First()
            .GetField("s_current", BindingFlags.NonPublic |
                                   BindingFlags.Static)
            .SetValue(null, null);
    }
}</code>
Nach dem Login kopieren

Mit diesem Code wird die neue app.config gelesen und verwendet, wenn die Anwendung ausgeführt wird. Die standardmäßige app.config kann durch Freigeben der AppConfig-Instanz wiederhergestellt werden. Wenn eine dauerhafte Änderung erforderlich ist, können Sie diese ohne Verwendung der AppConfig.Change-Methode durchführen und sie am Anfang der Anwendung platzieren.

Das obige ist der detaillierte Inhalt vonWie kann ich die App.config zur Laufzeit dynamisch ändern, ohne den Standard zu überschreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage