2011-09-07 19 views
5

के बीच साझा कॉन्फ़िगरेशन मैं अपनी प्रोजेक्ट में सेटिंग्स.सेटिंग फ़ाइल के साथ काम करने की कोशिश कर रहा हूं। ऐसे मान हैं जिन्हें .exe फ़ाइल और विभिन्न DLL के बीच साझा करने की आवश्यकता है। मैं इन मानों को बस पास नहीं करना चाहूंगा, जब भी मुझे उनकी आवश्यकता होती है, तो मैं उन्हें एक्सेस करना चाहता हूं लेकिन प्रत्येक प्रोजेक्ट अपने मूल्यों को थोड़ा अलग नामों से सेट करता है और इसलिए अन्य परियोजनाओं तक पहुंच योग्य नहीं होता है।एक .exe और a .dll

क्या सेटिंग्स.सेटिंग दृष्टिकोण का उपयोग कर .exe और a .dll के बीच app.config फ़ाइल की सामग्री साझा करने का कोई तरीका है? या ऐसा करने के लिए मुझे कॉन्फ़िगरेशन प्रबंधक का उपयोग करने के लिए वापस जाने की आवश्यकता है?

उत्तर

5

बस अपनी सेटिंग्स App.config फ़ाइल में रखें, और उन्हें अपने डीएलएल से पढ़ें। असल में मेरा मानना ​​है कि यह एकमात्र जगह है जहां आपका डीएलएल सेटिंग्स/कॉन्फ़िगरेशन की तलाश करेगा, डीएलएल के लिए स्थानीय कॉन्फ़िगरेशन को अनदेखा किया जाएगा।

यह सुनिश्चित करने के लिए एक त्वरित उदाहरण है कि डीएलएल के पास आवेदन के लिए कोई मजबूत संदर्भ नहीं है। यह कोड बहुत अच्छा नहीं है लेकिन आपको विचार मिलता है।

private string GetSettingValue(string key) 
    { 
    string executingAssembly = Assembly.GetEntryAssembly().GetName().Name; 
    string sectionName = "applicationSettings/" + executingAssembly 
               + ".Properties.Settings"; 
    ClientSettingsSection section = 
      (ClientSettingsSection)ConfigurationManager.GetSection(sectionName); 

    // add null checking etc 
    SettingElement setting = section.Settings.Get(key); 
    return setting.Value.ValueXml.InnerText; 
    } 

वैकल्पिक रूप से साझा सेटिंग्स के साथ एक आम dll है और प्रत्येक विधानसभा कॉन्फिग साझा करने के लिए की जरूरत है कि से निर्भरता ले। यह बहुत साफ है।

+0

लेकिन अगर मेरे पास सेटिंग 1 नामक सेटिंग है, तो मैं अपने .exe और my .dll दोनों रोम तक पहुंच बनाना चाहता हूं, मेरे पास एक सामान्य प्रविष्टि कैसे है? एप्लिकेशन में से एक एप्लिकेशन में होगा सेटिंग्स/app_name.Properties.Settings और dll से एक एप्लिकेशन में होगा सेटिंग्स/लाइब्रेरी। प्रॉपर्टीज। सेटिंग्स। मैं उन्हें एक ही मूल्य तक पहुंचने के लिए कैसे प्राप्त करूं? –

+0

एक कोड नमूना जोड़ा गया – TheCodeKing

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