私は過去3日間ネットを精練していましたが、この質問への参照は見つかりませんでした。私はapp.configで使用するためのカスタム設定クラスを作成しました。すべてうまく動作します。この問題は、(構成要素の)構成プロパティーが不要で、app.configで定義されていない場合に発生します。構成プロパティーのデフォルト値が返されているようです。どのようにプロパティがapp.configで定義されていないかどうかを判断する方法を知っていますか? (私は私のapp.configを投稿しようとしてきたが、それを行う方法を見つけ出すことはできません...誰がどのように知っている?)カスタム設定、ConfigurationElements、およびConfigurationProperties
//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"]; } }
}
}
これは機能しますが、プロパティが定義されていないときにデフォルトを抑制する方法があることを期待していました。私が今使っている作業はconfig.Setting2.IsPresent – user62064