[C#] Equivalent de la fonction GetSetting() de VB .NET

Les VB-iens sont réputés pour être les plus fainéants dans la plateforme .NET. En effet, ils disposent d’une fonction GetSetting() permettant de récupérer des paramètres d’une application dans la base de registre.

Par exemple, lorsqu’ils écrivent :

Dim s As String
s = GetSetting("Mon application", "Ma section", "Mon paramètre", "Valeur par défaut") 

Cette fonction, lit la valeur « Mon paramètre » contenu dans la clé « HKEY_CURRENT_USER\Software\VB and VBA Program Settings\Mon application\Ma section« .
Les C#-iens ne disposent pas de méthodes équivalentes permettant d’accéder à cette clé. Pour cela voici une classe qui contient des méthodes statiques permettant d’obtenir le même comportement que la fonction GetSetting() de VB .NET.


using System;
using System.Collections.Generic;
using System.Text;
 

using Microsoft.Win32;
 

namespace Tourreau.Gilles
{
    public static class VbNetSettings
    {
        public static string GetSetting(string applicationName, string sectionName, string key)
        {
            return GetSetting(applicationName, sectionName, key, null);
        }
 

        public static string GetSetting(string applicationName, string sectionName, string key, string valeurParDéfaut)
        {
            StringBuilder path;
            RegistryKey registryKey;
 

            path = new StringBuilder(@"Software\VB and VBA Program Settings");
 

            // Générer le chemin de la clé
            if (string.IsNullOrEmpty(applicationName) == false)
            {
                path.Append('\\');
                path.Append(applicationName);
 

                if (string.IsNullOrEmpty(sectionName) == false)
                {
                    path.Append('\\');
                    path.Append(sectionName);
                }
            }
 

            // Ouvrir la clé
            registryKey = Registry.CurrentUser.OpenSubKey(path.ToString());
 

            // Si la clé est inexistante, retourner la valeur par défaut
            if (registryKey == null)
            {
                return valeurParDéfaut;
            }
 

            try
            {
                // Lire la valeur contenu dans la clé
                return (string)registryKey.GetValue(key, valeurParDéfaut);
            }
            finally
            {
                registryKey.Dispose();
            }
        }
    }
}

Il est maintenant possible d’utiliser cette classe comme ceci : 


static void Main(string[] args)
{
    string s;
 

    s = VbNetSettings.GetSetting("Mon application", "Ma section", "Mon paramètre", "Valeur par défaut");
}

Publié dans la catégorie C#.
Tags : , . TrackBack URL.

Leave a comment