Maison > développement back-end > C++ > Comment puis-je modifier dynamiquement l'application.config au moment de l'exécution sans écraser la valeur par défaut?

Comment puis-je modifier dynamiquement l'application.config au moment de l'exécution sans écraser la valeur par défaut?

Linda Hamilton
Libérer: 2025-01-25 17:36:10
original
482 Les gens l'ont consulté

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

Modifier dynamiquement l'App.config par défaut pendant l'exécution

Afin de charger dynamiquement des modules nécessitant des éléments de configuration, il est nécessaire de créer un nouveau app.config en mémoire, de consolider les différentes sections du module et de laisser l'application l'utiliser sans écraser le app.config par défaut.

Pour ce problème, nous avons trouvé une solution similaire à celle proposée dans la question. Cependant, le code fourni ne produit pas les résultats escomptés. La méthode mentionnée dans la question liée ne fonctionnera que si elle est effectuée avant de configurer le système pour la première utilisation. Les valeurs mises en cache dans la classe ClientConfigPaths empêchent la lecture des nouvelles configurations après la première utilisation.

Par conséquent, cette solution supprime également ces valeurs mises en cache. Le code suivant réalise cette tâche :

<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>
Copier après la connexion

Avec ce code, le nouveau app.config sera lu et utilisé lors de l'exécution de l'application. Le fichier app.config par défaut peut être restauré en libérant l'instance AppConfig. Si une modification permanente est requise, vous pouvez l'effectuer sans utiliser la méthode AppConfig.Change, en la plaçant au début de l'application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal