Fichier de configuration : custom section, custom element (system.configuration)

Description

Custom Configuration File C#

J'ai voulu faire quelque chose de très simple, et finalement j'ai passé plusieurs heures dans la documentation avant d'arriver à ce que je voulais : créer un fichier de configuration qui me permet d'avoir une section personnalisée que je pourrais crypter pour stocker des données qui peuvent être sensibles, et faire en sorte que chaque user ait son propre fichier.

La solution est très simple : il faut dériver des classes ConfigurationSection, ConfigurationElement et ConfigurationElementCollection. Avec relativement peut de ligne, on peut faire quelques choses de tout à fait acceptable mais j'ai eu pas mal de peine à trouver un code simple sur le net qui met ceci en oeuvre. D'où cette source qui s'adresse donc aux débutants et aux personnes ne connaissant pas (ou peu) le namespace System.Configuration.

Source / Exemple :


Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
            CriticalSection criticalSection = configuration.SectionGroups["userSettings"].Sections["CriticalSection"] as CriticalSection;
            if (criticalSection != null)
            {
                // Section property
                criticalSection.Id = 1;
                criticalSection.Username = "Bidou";

                // Element property
                criticalSection.AddresseElement.Street = "myStreet";
                criticalSection.AddresseElement.Number = 22;

                // Elements property
                criticalSection.ComputerElements.Add(new ComputerElement("INSPIRON", 2007));
                criticalSection.ComputerElements.Add(new ComputerElement("Other"));
                criticalSection.ComputerElements.Add(new ComputerElement("P4", 2005));
                criticalSection.ComputerElements.Add(new ComputerElement());
                criticalSection.ComputerElements.Add(new ComputerElement("ACER", 2004));

                // Protect the section with a RSA algorithm
                if (!criticalSection.SectionInformation.IsProtected && 
                    !criticalSection.SectionInformation.IsLocked) 
                    criticalSection.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
                criticalSection.SectionInformation.ForceSave = true;
            }
            configuration.Save();

Conclusion :


Lecture utile pour approfondir le sujet:

http://msdn.microsoft.com/msdnmag/issues/06/06/ConfigureThis/default.aspx
http://msdn.microsoft.com/msdnmag/issues/05/04/AdvancedBasics/default.aspx
http://www.codeproject.com/dotnet/mysteriesofconfiguration.asp

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.