Configuration personnalisée, ConfigurationElements, et ConfigurationProperties

J'ai été à récurer le net pour les 3 derniers jours, et ne pouvez pas trouver aucune référence à cette question. J'ai créé une configuration personnalisée de la classe pour être utilisé avec mon application.config. Tout fonctionne très bien. Le problème vient quand une propriété de configuration (d'un élément de configuration) n'est pas nécessaire et n'est pas défini dans l'application.config. Il semble que par défaut les valeurs sont renvoyées pour la configuration de la propriété. Quelqu'un sait-il comment faire pour déterminer si la propriété n'est pas définie dans l'application.config? (J'ai essayé de poster mon application.config, mais impossible de trouver comment faire...quelqu'un sait comment?)


//Main
namespace TestStub
{
    class Program
    {
        static void Main(string[] args)
        {
            CustomSettingsHandler config = (CustomSettingsHandler)ConfigurationManager.GetSection("CustomSettingsManager");
            Console.WriteLine("Setting1 {0}", config.Setting1.CustomSettingItem);
            Console.WriteLine("Setting2 {0}", config.Setting2.CustomSettingItem);
        }
    }
}

//Custom Configuration Class
namespace CustomConfiguration
{
    public class CustomSettingsHandler : ConfigurationSection
    {
        [ConfigurationProperty("setting1", IsRequired = false)]
        public CustomSettingElement Setting1 { get { return (CustomSettingElement)this["setting1"]; } }

        [ConfigurationProperty("setting2", IsRequired = false)]
        public CustomSettingElement Setting2 { get { return (CustomSettingElement)this["setting2"]; } }
    }

    public class CustomSettingElement : ConfigurationElement
    {
        [ConfigurationProperty("customsettingitem", IsRequired = false)]
        public int CustomSettingItem { get { return (int)this["customsettingitem"]; } }
    }
}

OriginalL'auteur user62064 | 2009-02-20