首頁 > 後端開發 > C++ > 如何在執行時間動態變更 app.config 而不覆寫預設值?

如何在執行時間動態變更 app.config 而不覆寫預設值?

Linda Hamilton
發布: 2025-01-25 17:36:10
原創
536 人瀏覽過

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

執行階段動態修改預設App.config

為了動態載入需要設定項目的模組,需要一種方法在記憶體中建立一個新的app.config,整合來自模組的各個節,並讓應用程式使用它,而不會覆蓋預設的app.config 。

針對這個問題,我們找到了一個類似於問題中提出的解決方案。但是,提供的程式碼並沒有產生預期的結果。連結問題中提到的方法只有在配置系統首次使用之前執行才能運作。 ClientConfigPaths類別中的快取值阻止了在初始使用後讀取新的配置。

因此,本解決方案也刪除了這些快取值。以下程式碼實現了此任務:

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);
    }
}
登入後複製

使用此程式碼,新的app.config將在應用程式執行時讀取和使用。可以透過釋放AppConfig實例來恢復預設的app.config。如果需要永久更改,則可以在不使用AppConfig.Change方法的情況下執行它,將其放在應用程式的開頭。

以上是如何在執行時間動態變更 app.config 而不覆寫預設值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板