मैं पिछले 3 दिनों से नेट को खराब कर रहा हूं, और इस प्रश्न का कोई संदर्भ नहीं मिल रहा है। मैंने अपने app.config के साथ उपयोग करने के लिए एक कस्टम कॉन्फ़िगरेशन क्लास बनाया है। सब कुछ ठीक काम करता है। समस्या तब होती है जब कॉन्फ़िगरेशन गुण (कॉन्फ़िगरेशन तत्व का) आवश्यक नहीं है, और app.config में परिभाषित नहीं किया गया है। ऐसा लगता है कि कॉन्फ़िगरेशन प्रॉपर्टी के लिए डिफ़ॉल्ट मान लौटाए जाते हैं। क्या किसी को यह पता लगाना है कि संपत्ति को app.config में परिभाषित नहीं किया गया है या नहीं? (मैं अपने app.config पोस्ट करने के लिए कोशिश कर रहा है, लेकिन यह कैसे करना है पता नहीं कर सकते हैं ... क्या किसी को पता है कि कैसे?)कस्टम कॉन्फ़िगरेशन, कॉन्फ़िगरेशन एलिमेंट्स, और कॉन्फ़िगरेशनप्रॉपर्टीज
//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