दिलचस्प पोस्ट
मैं निष्पादित करने वाले पर्ल स्क्रिप्ट का पूरा रास्ता कैसे प्राप्त करूं? आईएसओ 8601 और आरएफसी 3339 दिनांक प्रारूप में क्या अंतर है? पथ से फ़ाइल का नाम निकालें, चाहे कोई भी ओएस / पथ प्रारूप हो निर्माता प्रतीकों का दोहरी उत्सर्जन कोणीय UI- राउटर लॉगिन प्रमाणीकरण मॉलोक () बनाम हिएपऑलोक () java.lang.VerifyError: शाखा लक्ष्य JDK 1.7 पर एक स्टैकमैप फ़्रेम की अपेक्षा करना क्या मैं जावा / ग्रोविए में अपने विंडोज डेस्कटॉप वॉलपेपर को बदल सकता हूँ? जावा शून्य संदर्भ प्रकार के लिए उपयोग करता है? .h और .m फ़ाइल में @ अंतरफलक परिभाषा के बीच अंतर ऐप आईओएस आईपीवी 6 नेटवर्क से अस्वीकृत कैसे इस त्रुटि को रोकने के लिए: चेतावनी: mysql_fetch_assoc () पैरामीटर 1 संसाधन होने की उम्मीद है, बूलियन को दिया … लाइन 11 पर सी # मैं कैसे जांच सकता हूँ कि कोई URL मौजूद है / मान्य है? एचटीएमएल या एएसपीएक्स एक्सटेंशन निकालें xslt तत्वों पर समूह कैसे लागू करें

विन्यास स्थान से कॉन्फ़िग लोड करने के लिए कॉन्फ़िगरेशन प्रबंधक का उपयोग करना

मैं एक डेटा एक्सेस घटक विकसित कर रहा हूं जिसका उपयोग वेबसाइट में किया जाएगा जिसमें क्लासिक एएसपी और एएसपी.नेट पेजों के मिश्रण होंगे, और इसकी कॉन्फ़िगरेशन सेटिंग्स को प्रबंधित करने के लिए एक अच्छा तरीका चाहिए।

मैं एक कस्टम ConfigurationSection का उपयोग करना चाहूंगा, और एएसपी.नेट पेजों के लिए यह महान काम करता है। लेकिन जब घटक क्लासिक एएसपी पृष्ठ से COM इंटरॉप के माध्यम से कहा जाता है, तो घटक ASP.NET अनुरोध के संदर्भ में नहीं चल रहा है और इसलिए web.config का कोई ज्ञान नहीं है

क्या ConfigurationManager को एक मनमाना मार्ग से विन्यास को लोड करने के लिए कहने का कोई तरीका है (जैसे ..\web.config यदि मेरी विधानसभा /bin फ़ोल्डर में है)? अगर वहाँ है तो मैं सोच रहा हूँ कि मेरा घटक उस पर वापस आ सकता है यदि डिफ़ॉल्ट ConfigurationManager.GetSection प्रबंधक। null मेरे कस्टम अनुभाग के लिए null जाता है।

इस के लिए कोई अन्य दृष्टिकोण स्वागत होगा!

Solutions Collecting From Web of "विन्यास स्थान से कॉन्फ़िग लोड करने के लिए कॉन्फ़िगरेशन प्रबंधक का उपयोग करना"

इसे इस्तेमाल करे:

 System.Configuration.ConfigurationFileMap fileMap = new ConfigurationFileMap(strConfigPath); //Path to your config file System.Configuration.Configuration configuration = System.Configuration.ConfigurationManager.OpenMappedMachineConfiguration(fileMap); 

एक और समाधान डिफ़ॉल्ट वातावरण कॉन्फ़िगरेशन फ़ाइल पथ को ओवरराइड करना है।

मुझे यह गैर-तुच्छ-पथ विन्यास फ़ाइल लोड के लिए सबसे अच्छा समाधान मिल रहा है, विशेष रूप से डीएलएल को कॉन्फ़िगरेशन फ़ाइल संलग्न करने का सर्वोत्तम तरीका।

 AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", <Full_Path_To_The_Configuration_File>); 

उदाहरण:

 AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"C:\Shared\app.config"); 

इस ब्लॉग में अधिक जानकारी मिल सकती है

इसके अतिरिक्त, इस अन्य उत्तर में एक उत्कृष्ट समाधान है, ऐप कॉन्फ़िग को रीफ्रेश करने के लिए कोड के साथ पूरा किया गया है और एक IDisposable ऑब्जेक्ट को इसे मूल स्थिति में रीसेट करने के लिए है। इस समाधान के साथ, आप अस्थायी ऐप कॉन्फ़िग को सुरक्षित रख सकते हैं:

 using(AppConfig.Change(tempFileName)) { // tempFileName is used for the app config during this context } 

इश्माइल का जवाब आम तौर पर काम करता है, हालांकि मुझे एक समस्या मिली, जो कि OpenMappedMachineConfiguration का उपयोग मशीन से आपके वंशानुगत अनुभाग समूहों को OpenMappedMachineConfiguration से खोना है। इसका अर्थ है कि आप अपने स्वयं के कस्टम अनुभागों तक पहुंच सकते हैं (जो कि सभी ओपी चाहते हैं), लेकिन सामान्य सिस्टम अनुभाग नहीं। उदाहरण के लिए, यह कोड काम नहीं करेगा:

 ConfigurationFileMap fileMap = new ConfigurationFileMap(strConfigPath); Configuration configuration = ConfigurationManager.OpenMappedMachineConfiguration(fileMap); MailSettingsSectionGroup thisMail = configuration.GetSectionGroup("system.net/mailSettings") as MailSettingsSectionGroup; // returns null 

असल में, यदि आप configuration.SectionGroups पर एक घड़ी डालते हैं। समूह समूह, आप देखेंगे कि system.net एक सेक्शन ग्रुप के रूप में पंजीकृत नहीं है, इसलिए यह सामान्य चैनलों के माध्यम से बहुत अधिक दुर्गम है।

इस तरीके के आसपास काम करने के दो तरीके हैं I पहला, जिसे मैं पसंद नहीं करता, सिस्टम अनुभाग समूहों को machine.config से उन्हें अपने वेब में कॉन्फ़िगर करके पुन: लागू करना है। Config उदाहरण

 <sectionGroup name="system.net" type="System.Net.Configuration.NetSectionGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <sectionGroup name="mailSettings" type="System.Net.Configuration.MailSettingsSectionGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <section name="smtp" type="System.Net.Configuration.SmtpSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </sectionGroup> </sectionGroup> 

मुझे यकीन नहीं है कि वेब अनुप्रयोग ही उसके बाद ठीक से चल जाएगा, लेकिन आप अनुभाग समूहों को सही तरीके से एक्सेस कर सकते हैं।

इसका दूसरा समाधान इसके बजाय अपने वेब। कॉन्फ़िग को एक एक्सई कॉन्फ़िगरेशन के रूप में खोलने के बजाय होता है, जो कि वैसे भी अपने इच्छित फ़ंक्शन के करीब है:

 ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap() { ExeConfigFilename = strConfigPath }; Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); MailSettingsSectionGroup thisMail = configuration.GetSectionGroup("system.net/mailSettings") as MailSettingsSectionGroup; // returns valid object! 

मैं यहां दिए गए उत्तरों में से कोई भी हिम्मत नहीं करता, न तो मेरा या इश्मेएल, इन कार्यों का काफी उपयोग कर रहे हैं कैसे .नेट डिजाइनर का इरादा है लेकिन, यह मेरे लिए काम करने लगता है

इश्मेएल के जवाब के अलावा, विधि OpenMappedMachineConfiguration() हमेशा एक Configuration ऑब्जेक्ट वापस करेगा। तो यह देखने के लिए कि क्या यह लोड किया गया है, जांचने के लिए आपको HasFile संपत्ति की जांच करनी चाहिए जहां सही है कि यह फ़ाइल से आया है

मैं होस्ट के लिए कॉन्फ़िगरेशन मान प्रदान की है .net compoent निम्नानुसार है।

एमएस वर्ड में एक नेट क्लास लायब्रेरी घटक जिसे होस्ट किया जाता है / होस्ट किया जाता है। अपने घटक के लिए कॉन्फ़िगरेशन मान प्रदान करने के लिए, मैंने Winword.exe.config को सी में बनाया: \ Program Files \ Microsoft Office \ OFFICE11 फ़ोल्डर आप परंपरागत .net में करते हैं जैसे विन्यास मूल्यों को पढ़ने में सक्षम होना चाहिए।

 string sMsg = System.Configuration.ConfigurationManager.AppSettings["WSURL"]; 

एएसपी। नेट का उपयोग वेबकॉन्फिगरेशन प्रबंधक के लिए:

 var config = WebConfigurationManager.OpenWebConfiguration("~/Sites/" + requestDomain + "/"); (..) config.AppSettings.Settings["xxxx"].Value; 

एक्सएमएल प्रसंस्करण का प्रयोग करें:

 var appPath = AppDomain.CurrentDomain.BaseDirectory; var configPath = Path.Combine(appPath, baseFileName);; var root = XElement.Load(configPath); // can call root.Elements(...)