2009-07-30 7 views
16

मैं एक सी # .NET 2.0 .dll लिख रहा हूं जो Larger application में प्लग है। मेरे मॉड्यूल के लिए विजुअल स्टूडियो प्रोजेक्ट में एक app.config फ़ाइल है जिसे MyProj.dll के साथ MyProj.dll.config पर कॉपी किया गया है।प्लगइन मॉड्यूल से dll.config (app.config! नहीं) पढ़ना

योजना यह है कि MyProj.dll.config को .dll तैनात किए जाने के बाद संपादित किया जाएगा। मैं उस संशोधित स्थानीय फ़ाइल से अपनी सेटिंग्स को पढ़ने की कोशिश कर रहा हूं। मैं इस तरह मेरी .dll को LocalFilesSettingsObject बाहर खींच लिया है की कोशिश की और बदलते यह आवेदन नाम है:

 Properties.Settings config = Properties.Settings.Default; 
     SettingsContext context = config.Context; 
     SettingsPropertyCollection properties = config.Properties; 
     SettingsProviderCollection providers = config.Providers; 
     SettingsProvider configFile = Properties.Settings.Default.Providers["LocalFileSettingsProvider"]; 
     configFile.ApplicationName = Assembly.GetExecutingAssembly().GetName().Name; 
     config.Initialize(context, properties, providers); 
     config.Reload(); 

यह काम नहीं कर रहा है। मैं अपने सिर को पूरे .NET सेटिंग्स गड़बड़ के चारों ओर लपेटने के लिए संघर्ष कर रहा हूं। मैं इस काम को खत्म करने के लिए एक नुस्खा चाहता हूँ। मुझे .NET 2.0

उत्तर

22

में सेटिंग्स को काम करने के तरीके के बारे में एक स्पष्ट स्पष्टीकरण (उदाहरणों के साथ) के लिंक को भी पसंद करना होगा, आपको x.dll.config (कॉन्फ़िगरेशन एपीआई के साथ) लोड करने की आवश्यकता होगी। सभी स्वचालित फ़ाइल हैंडलिंग (.Settings समेत) मशीन.config/y.exe.config/उपयोगकर्ता-सेटिंग्स के बारे में है।

  • संदर्भ System.Configuration.dll विधानसभा:

    एक नामित कॉन्फ़िग फ़ाइल को खोलने के लिए।

  • का उपयोग System.Configuration
  • की तरह कोड बनाएँ: "विन्यास" टैग में

    Configuration GetDllConfiguration(Assembly targetAsm) { 
        var configFile = targetAsm.Location + ".config"; 
        var map = new ExeConfigurationFileMap { 
        ExeConfigFilename = configFile 
        }; 
        return ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None); 
    } 
    
2

1- दृश्य स्टूडियो

2- में खुला app.config फ़ाइल जोड़ने के अपने टैग "एपसेटिंग" में कॉन्फ़िगरेशन बोले के रूप में:

<configuration> 
    <appSettings> 
     <add key="UserName" value="aaa"/> 
     <add key="Password" value="111"/> 
    </appSettings> 
</configuration> 

अपने कोड सी #

var appConfig = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location); 
string userName = appConfig.AppSettings.Settings["UserName"].Value; 
string password = appConfig.AppSettings.Settings["Password"].Value; 

में 3 और "ConfigurationManager" के लिए और के लिए "विधानसभा"

  • System.Configuration का उपयोग कर यह 2 usings जोड़ने के लिए भूल गया नहीं है,
  • सिस्टम का उपयोग कर। रिफ्लेक्शन;

अगर System.Configuration प्रदर्शित नहीं करता है, तो आप संदर्भ में संदर्भ "System.Configuration" जोड़ना होगा

4- आप dll के रूप में bellow के लिए विन्यास अद्यतन कर सकते हैं:

  • फ़ाइल को खोलने "MyProj.dll.config"
  • फिर अपने विन्यास को अद्यतन
+0

धन्यवाद मोहम्मद! मैंने इन पदों में से कई के माध्यम से पढ़ा है और आपका काम केवल एक ही है! –

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