Przeszukuję sieć przez ostatnie 3 dni i nie mogę znaleźć żadnego odniesienia do tego pytania. Stworzyłem niestandardową klasę konfiguracji, która będzie używana z moim app.config. Wszystko dziala. Problem pojawia się, gdy właściwość konfiguracji (elementu konfiguracji) nie jest wymagana i nie jest zdefiniowana w pliku app.config. Wygląda na to, że wartości domyślne są zwracane dla właściwości konfiguracji. Czy ktoś wie, jak określić, czy właściwość nie jest zdefiniowany w app.config? (Próbowałem odpowiedzieć moje app.config, ale nie mogę dowiedzieć się, jak to zrobić ... ktoś wie jak?)Niestandardowa konfiguracja, opcje konfiguracji i właściwości konfiguracji
//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"]; } }
}
}
To działa, ale miałem nadzieję, że był sposób, aby wyłączyć domyślne, gdy właściwość nie jest zdefiniowana. Praca, której teraz używam, to config.Setting2.IsPresent – user62064