मुझे निम्नलिखित समस्या है:
हमारे पास एक एप्लिकेशन है जो मॉड्यूल लोड करता है (ऑन जोड़ता है)। इन मॉड्यूल को app.config (जैसे WCF कॉन्फ़िगरेशन) में प्रविष्टियों की आवश्यकता हो सकती है। क्योंकि मॉड्यूल गतिशील रूप से लोड किए गए हैं, मैं इन प्रविष्टियों को अपने आवेदन की app.config फ़ाइल में नहीं रखना चाहता।
मैं क्या करना चाहूंगा निम्नलिखित है:
- एक नया ऐप बनाएं। मेमोरी में जो मॉड्यूल्स से कॉन्फिगर सेक्शन को शामिल करता है
- उस नए app.config का उपयोग करने के लिए मेरे आवेदन को बताएं
नोट: मैं डिफ़ॉल्ट ऐप को अधिलेखित नहीं करना चाहता हूं ।config!
इसे पारदर्शी तरीके से काम करना चाहिए, ताकि उदाहरण के ConfigurationManager.AppSettingsलिए उस नई फ़ाइल का उपयोग किया जा सके।
इस समस्या के अपने मूल्यांकन के दौरान, मैं उसी समाधान के साथ आया, जो यहां प्रदान किया गया है: ननिट के साथ पुनः लोड करें app ।config ।
दुर्भाग्य से, यह कुछ भी करने के लिए प्रतीत नहीं होता है, क्योंकि मुझे अभी भी सामान्य app.config से डेटा मिलता है।
मैंने इसका परीक्षण करने के लिए इस कोड का उपयोग किया:
Console.WriteLine(ConfigurationManager.AppSettings["SettingA"]);
Console.WriteLine(Settings.Default.Setting);
var combinedConfig = string.Format(CONFIG2, CONFIG);
var tempFileName = Path.GetTempFileName();
using (var writer = new StreamWriter(tempFileName))
{
writer.Write(combinedConfig);
}
using(AppConfig.Change(tempFileName))
{
Console.WriteLine(ConfigurationManager.AppSettings["SettingA"]);
Console.WriteLine(Settings.Default.Setting);
}
यह समान मूल्यों को जुड़वाता है, हालाँकि combinedConfigइसमें सामान्य एप्लिकेशन के अलावा अन्य मूल्य शामिल हैं।
Reload app.config with nunitयदि कोई कॉन्फ़िगरेशन लोड होने से पहले अनुप्रयोग प्रविष्टि पर उपयोग किया जाता है, तो हैक काम नहीं कर सकता।
AppDomainउपयुक्त कॉन्फ़िगरेशन फ़ाइल के साथ मॉड्यूल को अलग से होस्ट करना एक विकल्प नहीं है?