मैं उन अनुप्रयोगों को लिख रहा हूं जो किसी तृतीय-पक्ष एप्लिकेशन के साथ इंटरऑपरेट करते हैं। यह एप्लिकेशन एक डीएलएल में विधियों के माध्यम से डेवलपर्स को एक एपीआई का खुलासा करता है। कुछ समय पहले, इस ऐप के विक्रेता ने अपने प्रोग्राम में अपने .NET घटकों को एकीकृत करना शुरू किया, और जब उन्होंने किया, तो उन्होंने फैसला किया कि उनके घटकों को रनटाइम पर सेटिंग्स प्राप्त करने के लिए ConfigurationManager
का उपयोग करना चाहिए।मैं एकाधिक फ़ाइलों से एप्लिकेशन सेटिंग्स लोड करने के लिए ConfigManager कैसे प्राप्त कर सकता हूं?
इसका क्या अर्थ है: उनके कार्यक्रम, foo.exe
, fooengine.dll
पर कॉल करता है, और यह foo.exe.config
से इसकी सेटिंग्स को पढ़ता है। मेरा प्रोग्राम, bar.exe
, fooengine.dll
पर भी कॉल करता है, और यह bar.exe.config
से इसकी सेटिंग्स को पढ़ता है।
अच्छा, यह सिर्फ सादा गलत है। लेकिन मैं इसे कैसे ठीक करूं?
सरल कामकाज 10 में foo.exe.config
की सेटिंग्स को दोहराना है। यह काम करेगा, लेकिन यह बेवकूफ है। इसका मतलब है कि एक प्रशासनिक दृष्टिकोण से, एन अलग-अलग फाइलों में एक दी गई सेटिंग को बनाए रखा जाना चाहिए। यह जल्द या बाद में असफल होने जा रहा है।
मैंने अपनी कॉन्फ़िगरेशन फ़ाइल में appSettings
अनुभाग पर configSource
विशेषता डालने का प्रयास किया। (जैसा भी होता है, मैं अपनी सेटिंग्स के लिए applicationSettings
अनुभाग का उपयोग कर रहा हूं, और वे appSettings
अनुभाग का उपयोग कर रहे हैं, इसलिए मैं बस उस अनुभाग को एक अलग फ़ाइल से प्राप्त कर सकता हूं।) लेकिन ConfigurationManager
यह पसंद नहीं है : यह configSource
में पथ को केवल से संबंधित मेरे प्रोग्राम की निर्देशिका से संबंधित नहीं चाहता है।
मैं अपनी सेटिंग्स फ़ाइल को XmlDocument
में शारीरिक रूप से पढ़ सकता हूं और फिर उन्हें स्वयं सेट कर सकता हूं। लेकिन अब मैं कड़ाई से अपने कार्यान्वयन के लिए अपने कोड जोड़ रहा हूँ; अगर वे एक नई रिलीज डालते हैं जो सेटिंग्स को applicationSettings
सेक्शन में ले जाता है (जहां वह होना चाहिए तो यह 200 9 हो), मेरा कोड टूट जाएगा।
क्या इसमें से कोई और तरीका है?
मुझे विश्वास नहीं है कि "बस" सही शब्द है।कॉन्फ़िगरेशन ऑब्जेक्ट प्राप्त करने के लिए मैं OpenMappedMachine कॉन्फ़िगरेशन को कॉल कर सकता हूं। लेकिन यह ConfigManager को अद्यतन नहीं करता है। और यहां तक कि नाम/मूल्य जोड़े की सूची तक पहुंचने के लिए तुच्छ नहीं है (याद रखें, दूसरा ऐप पुरानी शैली "ऐप सेटिंग्स" अनुभाग का उपयोग कर रहा है, वर्तमान "एप्लिकेशन सेटिंग्स" अनुभाग नहीं - GetSection डिफ़ॉल्ट रूप से ऑब्जेक्ट के रूप में देता है) । फ़ाइल को XmlDocument में पढ़ने के लिए यह बहुत कम कोड है। –