2011-10-12 22 views
6

मुझे मार्गों का एक गुच्छा मिला है जो मैं अपने वेब में फेंकने में सक्षम होना चाहता हूं। कॉनफिग फ़ाइल। संग्रह में प्रत्येक अनुभाग/आइटम के लिए मुझे एक कुंजी और दो मान फ़ील्ड चाहिए। इस की तर्ज पर कुछ ...वेब में कस्टम सेक्शन/संग्रह। कॉनफिग

<routes> 
    <add 
     key="AdministrationDefault" 
     url="Administration/" 
     file="~Administration/Default.aspx" /> 

    <add 
     key="AdministrationCreateCampaign" 
     url="Administration/CreateCampaign/" 
     file="~/Administration/CreateCampaign.aspx" /> 

    <add 
     key="AdministrationLogout" 
     url="Administration/Leave/" 
     file="~/Administration/Leave.aspx" /> 
</routes> 

यह संभव है?

उत्तर

7

बहुत समान यहाँ नमूना: http://jopinblog.wordpress.com/2007/04/20/custom-configurationsections-in-net-20-config-files/
यह कस्टम वर्गों के लिए आधिकारिक पृष्ठ है: http://msdn.microsoft.com/en-us/library/2tw134k3.aspx
इसके अलावा, वहाँ यहाँ समान सवाल यह है: How do I define custom web.config sections with potential child elements and attributes for the properties?

+1

अंतिम लिंक ने मुझे बहुत मदद की। धन्यवाद – roosteronacid

2

हां। और एक बार शुरू होने के बाद भी मुश्किल नहीं है।

आप <routes> अनुभाग को परिभाषित (और फिर विन्यास करने के लिए एक <section> जोड़ने अपने प्रकार के <routes> तत्व से जोड़ने के लिए) के लिए एक ConfigurationSection व्युत्पन्न वर्ग बनाने की आवश्यकता होगी।

आपको संग्रह के प्रत्येक तत्व को परिभाषित करने के लिए एक प्रकार की आवश्यकता होगी और डिफ़ॉल्ट रूप से फ़्लैग किया जाएगा, संग्रह के लिए आपके दूसरे प्रकार की एक संपत्ति।

के बाद यह सब आप के रूप में आपके विन्यास अनुभाग तक पहुंचने की स्थापना की है, कार्यावधि में:

var myRoutes = ConfigurationManager.GetSection("routes") as RoutesConfigSection; 

मेरा ब्लॉग यह करने के लिए रंग की पृष्ठभूमि पर कुछ लेख है: http://blog.rjcox.co.uk/category/dev/net-core/

के रूप में वहाँ एक और answer में नोट एमएसडीएन पर भी कवरेज (इसका इस्तेमाल करने से काफी बेहतर) है।

1

आप अपने config अनुभाग का प्रतिनिधित्व करने के लिए एक वर्ग आप ऐसा कर सकते हैं बनाने के लिए नहीं करना चाहते हैं:

var configSection = ConfigurationManager.GetSection("sectionGroup/sectionName"); 
var aValue = (configSection as dynamic)["ValueKey"]; 

गतिशील में कनवर्ट कर आप configSection में कुंजी मान पहुंचने देता है। कॉन्फ़िगरेशन में आपको ब्रेक पॉइंट और शिखर जोड़ना पड़ सकता है यह देखने के लिए कि क्या है और क्या वैल्यूके का उपयोग करना है।

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