अपने सरलतम पर, app.config एक XML फ़ाइल है जिसमें कई पूर्वनिर्धारित कॉन्फ़िगरेशन अनुभाग उपलब्ध हैं और कस्टम कॉन्फ़िगरेशन अनुभागों के लिए समर्थन है। एक "कॉन्फ़िगरेशन सेक्शन" XML का एक स्निपेट है जिसमें स्कीमा कुछ प्रकार की जानकारी संग्रहीत करने के लिए है।
सेटिंग्स को अंतर्निहित कॉन्फ़िगरेशन अनुभाग जैसे कि connectionStrings
या का उपयोग करके कॉन्फ़िगर किया जा सकता है appSettings
। आप अपने स्वयं के कस्टम कॉन्फ़िगरेशन अनुभाग जोड़ सकते हैं; यह एक उन्नत विषय है, लेकिन दृढ़ता से टाइप की गई कॉन्फ़िगरेशन फ़ाइलों के निर्माण के लिए बहुत शक्तिशाली है।
वेब अनुप्रयोगों में आमतौर पर एक web.config होता है, जबकि Windows GUI / सेवा अनुप्रयोगों में एक app.config फ़ाइल होती है।
एप्लिकेशन-स्तर कॉन्फिगरेशन फाइल ग्लोबल कॉन्फिगरेशन फाइल्स जैसे कि मशीन.कॉन्फिग से इनहेरिट सेटिंग्स को फाइल करती है।
App.Config से पढ़ना
कनेक्शन स्ट्रिंग्स में एक पूर्वनिर्धारित स्कीमा है जिसका आप उपयोग कर सकते हैं। ध्यान दें कि यह छोटा सा स्निपेट वास्तव में एक वैध ऐप है ।config (या web.config) फ़ाइल:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyKey"
connectionString="Data Source=localhost;Initial Catalog=ABC;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
एक बार जब आप अपने app.config को परिभाषित कर लेते हैं, तो आप इसे configManager वर्ग का उपयोग करके कोड में पढ़ सकते हैं । क्रिया MSDN के उदाहरणों से भयभीत न हों; यह वास्तव में काफी सरल है।
string connectionString = ConfigurationManager.ConnectionStrings["MyKey"].ConnectionString;
App.Config के लिए लेखन
बार-बार * .config फ़ाइलों को बदलना आमतौर पर एक अच्छा विचार नहीं है, लेकिन ऐसा लगता है कि आप केवल एक बार सेटअप करना चाहते हैं।
देखें: रन टाइम पर कनेक्शन स्ट्रिंग और पुनः लोड करें app.config बदलें जो connectionStrings
रनटाइम पर * .config फ़ाइल के अनुभाग को अपडेट करने का तरीका बताता है।
ध्यान दें कि आदर्श रूप से आप एक साधारण इंस्टॉलर से ऐसे कॉन्फ़िगरेशन परिवर्तन करेंगे।
रनटाइम में App.Config का स्थान
प्रश्न : मान लीजिए कि मैं मैन्युअल रूप <value>
से app.config में कुछ परिवर्तन करता हूं , इसे सहेजें और फिर इसे बंद करें। अब जब मैं अपने बिन फ़ोल्डर में जाता हूं और .exe फ़ाइल यहां से लॉन्च करता हूं, तो यह लागू परिवर्तनों को क्यों नहीं दर्शाता है?
A : जब आप किसी एप्लिकेशन को संकलित करते हैं, तो उसका app.config बिन डाइरेक्टरी 1 में आपके नाम से मेल खाने वाले नाम से कॉपी किया जाता है । उदाहरण के लिए, यदि आपके एक्स को "test.exe" नाम दिया गया था, तो आपके बिन निर्देशिका में "text.exe.config" होना चाहिए। आप एक recompile के बिना कॉन्फ़िगरेशन को बदल सकते हैं, लेकिन आपको उस कॉन्फ़िगरेशन फ़ाइल को संपादित करने की आवश्यकता होगी जो कि संकलन समय पर बनाई गई थी, न कि मूल app.config।
1: ध्यान दें कि web.config फाइलें स्थानांतरित नहीं हुई हैं, लेकिन इसके बजाय संकलन और परिनियोजन समय पर एक ही स्थान पर रहें। इसका एक अपवाद तब है जब web.config को रूपांतरित किया जाता है ।
.NET कोर
.NET कोर के साथ नए कॉन्फ़िगरेशन विकल्प पेश किए गए थे। जिस तरह से * .config फाइलें काम करती हैं, वह परिवर्तित नहीं हुई हैं, लेकिन डेवलपर्स नए, अधिक लचीले विन्यास प्रतिमानों को चुनने के लिए स्वतंत्र हैं।