2009-04-17 20 views
26

सही तरीका एक वर्ग है कि System.Configuration.Section से विरासत अगर मैं इस तरह एक app.config इस्तेमाल किया के माध्यम से "पृष्ठों" की सूची लेने के लिए क्या है?कस्टम app.config कॉन्फ़िग धारा हैंडलर

[ConfigurationProperty("pages", IsDefaultCollection = false)] 
[ConfigurationCollection(typeof(PageCollection), AddItemName = "add")] 
public PageCollection Pages { 
    get { 
     return (PageCollection) this["pages"]; 
    } 
} 

तो फिर तुम एक PageCollection वर्ग बनाने की जरूरत है:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 

    <configSections> 
    <section name="XrbSettings" type="Xrb.UI.XrbSettings,Xrb.UI" /> 
    </configSections> 

    <XrbSettings> 
    <pages> 
     <add title="Google" url="http://www.google.com" /> 
     <add title="Yahoo" url="http://www.yahoo.com" /> 
    </pages> 
    </XrbSettings> 

</configuration> 

उत्तर

26

सबसे पहले आप वर्ग फैली कि धारा में कोई प्रॉपर्टी जोड़ते हैं। मैंने जो भी उदाहरण देखे हैं वे बहुत समान हैं इसलिए बस this one कॉपी करें और "नामांकित सेवा" का नाम "पृष्ठ" में बदलें।

:

public class PageElement : ObjectConfigurationElement { 
    [ConfigurationProperty("title", IsRequired = true)] 
    public string Title { 
     get { 
      return (string) this["title"]; 
     } 
     set { 
      this["title"] = value; 
     } 
    } 

    [ConfigurationProperty("url", IsRequired = true)] 
    public string Url { 
     get { 
      return (string) this["url"]; 
     } 
     set { 
      this["url"] = value; 
     } 
    } 
} 

यहां नमूने के कार्यान्वयन से कुछ फाइलें हैं:

अंत में एक वर्ग है कि ObjectConfigurationElement फैली जोड़ने

+0

लिंक समय – Hoppe

+0

@Hoppe से अधिक हड्डी टूट गई है अगर आप चाहते हैं एक और नमूना कार्यान्वयन मैं यहाँ एक बना दिया: http://stackoverflow.com/a/33544322/1955317 – Squazz

9

आपको कोडप्रोजेक्ट पर .NET 2.0 कॉन्फ़िगरेशन पर जॉन रिस्टा की तीन-भाग श्रृंखला भी देखना चाहिए।

अत्यधिक की सिफारिश की है, अच्छी तरह से लिखा और अत्यंत उपयोगी!

3
इसके अलावा

, आप अपने आप विन्यास वर्गों अक्सर बनाने मिल जाए, वहाँ Configuration Section Designer, विन्यास वर्गों डिजाइन करने के लिए एक ग्राफिकल डोमेन-विशिष्ट भाषा डिजाइनर हैं।

संबंधित मुद्दे