2008-10-02 20 views
9

में कॉन्फ़िगरेशन जानकारी डालना मेरी प्रोजेक्ट में मेरे पास कार्यक्षमता है जिसका उपयोग वेब एप्लिकेशन के रूप में और कंसोल एप्लिकेशन (कार्य शेड्यूलर से शुरू करने के लिए) के रूप में किया जा रहा है। ऐसा करने के लिए मैंने सामान्य कोड को एक डीएलएल में रखा है जिसका उपयोग वेब एप्लिकेशन और कंसोल एप्लिकेशन दोनों द्वारा किया जा रहा है। यह ठीक काम करता है।एक DLL

हालांकि, कंसोल और वेब अनुप्रयोगों में अब एक App.config और Web.config है जो अधिकतर समान हैं। क्या यह कॉन्फ़िगरेशन डीएलएल में भी रखना संभव है और इसे दोनों अनुप्रयोगों में उपलब्ध कराया जा सकता है?

उत्तर

7

हां, आप अपने डीएलएल के लिए कॉन्फ़िगरेशन फ़ाइल में सामान्य कॉन्फ़िगरेशन सेटिंग्स को रख और रख सकते हैं। बस DLL प्रोजेक्ट में एक app.config फ़ाइल जोड़ें, और सुनिश्चित करें कि आप DLL के अंदर से कॉन्फ़िगरेशन सेटिंग्स पढ़ते हैं। तैनात किए जाने पर, आपकी कॉन्फ़िगरेशन फ़ाइल को "MyDLL.dll.config" नाम होना चाहिए (मान लें कि आपका DLL "MyDLL.dll" नाम दिया गया है और DLL के समान फ़ोल्डर में होना चाहिए।

+9

यदि यह जीएसी में है तो क्या होगा? – Ryu

+0

डीएलएल कॉन्फ़िगरेशन फ़ाइल का संदर्भ कैसे देगा? यह कॉन्फ़िगरेशन फ़ाइल के स्थान को कैसे जानेंगे? – BKSpurgeon

+0

@BKSpurgeon: यह * पता नहीं है कि कॉन्फ़िगरेशन फ़ाइल DLL के समान फ़ोल्डर में है - यह केवल पहली जगह है जो इसे ढूंढती है। यही कारण है कि आपको DLL के अंदर कहीं भी कॉन्फ़िगरेशन फ़ाइल का पथ निर्दिष्ट करने की आवश्यकता नहीं है। – MusiGenesis

1

मैं सुझाव दूंगा कि आप कॉन्फ़िगरेशन लोडिंग को संपूर्ण कॉन्फ़िगरेशन के बजाय डीएल में ले जाएं, और फिर इसे विभिन्न ऐप्स से कॉल करें।

  1. आप यदि आप भविष्य में config विभाजित करने के लिए की जरूरत है, यह पहले से ही dll के साथ संभव हो जाएगा config डेटा (हमेशा उपयोगी)
  2. बदलने के लिए पुनः संकलित की जरूरत नहीं है: यह है कि इतनी है।
0

आप windows के पंजीकरण के अंतर्गत सामान्य विन्यास डाल सकता है, सुलभ भी आप

+0

एक नई मशीन पर तैनाती के लिए कठिन है। – MusiGenesis

+0

केवल तभी जब वह हाथ से तैनात करता है। भी, पहली बार डिफ़ॉल्ट मान उन्हें पढ़ने वाले पहले द्वारा डाला जा सकता था –

0

मान लिया जाये कि आप नेट का उपयोग कर रहे हैं, तो आप अपने विन्यास डेटा स्टोर करने के लिए एक .settings फ़ाइल सेट कर सकते हैं - डेटा निहित होगी उन कॉन्फ़िगर प्रविष्टियों के लिए डिफ़ॉल्ट मान के रूप में संग्रहीत किया गया है, भले ही कोई app.config फ़ाइल न हो, आपका एप्लिकेशन उन डिफ़ॉल्टों के साथ चलाएगा।

मैं यह नहीं कह रहा हूँ कि एक अच्छी बात है ... 8)

तो, अगर आप एक परियोजना अपने DLL संदर्भ का निर्माण, आप एक ही .settings कि इस परियोजना के लिए फ़ाइल जोड़ना होगा और उन सेटिंग्स प्रकट होता है ऐप के लिए app.config फ़ाइल में और डीएलएल उन मानों को पढ़ने में सक्षम होगा। यदि वे मान app.config में नहीं हैं, तो डीएल डिफ़ॉल्ट पर वापस आ जाएगा।

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