2010-03-29 26 views
26

संभव डुप्लिकेट:
What is the difference between app.config file and XYZ.settings file?सेटिंग app.config बनाम फाइल

मैं वास्तव में सेटिंग और config फ़ाइलों के बीच बातचीत/मतभेद नहीं समझ रहा हूँ। अगर मैं सेटिंग्स फ़ाइल में एंट्री जोड़ता हूं, तो यह ऐप.कॉन्फिग में भी जोड़ा जाता है। क्या इसका मतलब यह है कि app.config में मान बदलना सेटिंग्स अपडेट करेगा? यदि नहीं, तो मैं लाइव एप्लिकेशन में सेटिंग्स कैसे अपडेट करूं? चीजों को सीधे app.config में डालने की बजाय सेटिंग्स फ़ाइल का उपयोग करने का सामान्य उद्देश्य क्या है?

+0

http://stackoverflow.com/questions/13100498/c-sharp-app-config-vs-settings-file के समान, जो अतिरिक्त अंतर्दृष्टि प्रदान करता है। –

उत्तर

16

जो मैं देखकर बता सकता हूं उससे, ऐसा लगता है कि सेटिंग फ़ाइल और डिजाइनर कॉन्फ़िगरेशन फ़ाइल के लिए एक प्रकार का रैपर प्रदान करता है। सेटिंग डिज़ाइनर कुछ मानों को नियंत्रित करता है जो कॉन्फ़िगरेशन फ़ाइल में जाते हैं, लेकिन आपकी प्रॉपर्टी निर्देशिका में .settings फ़ाइल को भी संशोधित करते हैं, और आपके Settings.Designer.cs फ़ाइल में जेनरेट कोड बदलते हैं।

ध्यान दें कि कॉन्फ़िगरेशन फ़ाइल में, मानों में कोई प्रकार नहीं है, लेकिन .settings फ़ाइल में, वे करते हैं। अब Settings.Designer.cs खोलें। आप देखेंगे कि वहां उत्पन्न कोड आपकी कॉन्फ़िगरेशन फ़ाइल से मूल्यों को लेता है, और उन्हें आपके .settings फ़ाइल, या सेटिंग डिज़ाइनर में निर्दिष्ट अनुसार उचित प्रकारों पर रखता है। तो यह आपकी कॉन्फ़िगरेशन फ़ाइल में मानों के लिए एक प्रकार का सुरक्षित इंटरफ़ेस प्रदान कर रहा है। यदि आप अपनी कॉन्फ़िगरेशन फ़ाइल में कोई मान बदलते हैं, तो अगली बार जब आप सेटिंग डिज़ाइनर पर जाते हैं, तो यह आपको पूछेगा कि क्या आप उन परिवर्तनों को दर्शाने के लिए .settings अपडेट करना चाहते हैं।

तो ऐप को तैनात करने के बाद, आपके प्रश्न का उत्तर देने के लिए, आप कॉन्फ़िगरेशन फ़ाइल में मान को तब तक बदल सकते हैं जब तक कि इसे उचित प्रकार में डाला जा सके, अन्यथा मुझे लगता है कि यह Settings.Designer.cs में विफल हो जाएगा। एकमात्र उद्देश्य जिसे मैं देख सकता हूं कॉन्फ़िगरेशन फ़ाइल के एक्सएमएल को संभालने के लिए डिज़ाइनर की टाइप सुरक्षा और सुविधा प्रतीत होता है।

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

+0

मुझे लगता है कि एक और उद्देश्य है क्योंकि सेटिंग्स। डिज़ाइनर सीएस को एप्लिकेशन में संकलित किया जाता है ताकि ऐप.कॉन्फिग हटा दिए जाने पर भी सेटिंग्स तक पहुंच सकें। –

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