ホームページ > バックエンド開発 > C++ > デフォルトを上書きせずに実行時に app.config を動的に変更するにはどうすればよいですか?

デフォルトを上書きせずに実行時に app.config を動的に変更するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-25 17:36:10
オリジナル
482 人が閲覧しました

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

実行時にデフォルトの App.config を動的に変更します

構成アイテムを必要とするモジュールを動的にロードするには、メモリ内に新しい app.config を作成し、モジュールのさまざまなセクションを統合して、デフォルトの app.config を上書きせずにアプリケーションで使用できるようにする方法が必要です。

この問題については、質問で提案されているものと同様の解決策が見つかりました。ただし、提供されたコードでは期待どおりの結果が得られません。リンクされた質問で説明されている方法は、最初に使用するためにシステムを構成する前に実行した場合にのみ機能します。 ClientConfigPaths クラスのキャッシュされた値により、最初の使用後に新しい構成を読み取ることができなくなります。

したがって、このソリューションでは、これらのキャッシュされた値も削除されます。次のコードはこのタスクを実現します:

<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>
ログイン後にコピー

このコードでは、アプリケーションの実行時に新しい app.config が読み取られて使用されます。デフォルトの app.config は、AppConfig インスタンスを解放することで復元できます。永続的な変更が必要な場合は、AppConfig.Change メソッドを使用せずに、アプリケーションの先頭に配置して変更を実行できます。

以上がデフォルトを上書きせずに実行時に app.config を動的に変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート