2011-04-07 8 views
11

मेरे पास एक वीसी -2010 सी # समाधान है, इसमें कई परियोजनाएं हैं।संदर्भ वेब। उसी समाधान में किसी अन्य प्रोजेक्ट से कॉन्फिग फ़ाइल C#

तो उदाहरण के लिए, मेरे पास एक वेब प्रोजेक्ट है, और मेरे पास कक्षा पुस्तकालय है।

web.config फ़ाइल में, मेरे पास <appSettings> अनुभाग में एक कुंजी है, उदा।

<add key="FileDirectory" value="G:\ftproot\sales" /> 

मैं भी सर्वर पर फ़ाइल निर्देशिका को प्रतिबिंबित करने के Web.Production.config फ़ाइल में एक महत्वपूर्ण जोड़ लिया है।

तो जब मैं अपने वेब परियोजना में इसे संदर्भ (यह MVC है) - मैं तो इस तरह कार्य करें:

var FTPPath = ConfigurationManager.AppSettings["FileDirectory"]; 

यह मेरा वेब परियोजना के भीतर ठीक काम करता है। हालांकि, मुझे कक्षा पुस्तकालय में इसका संदर्भ देने की भी आवश्यकता है, जो मेरे प्रश्न पर आता है - क्या किसी अन्य प्रोजेक्ट से web.config फ़ाइल में किसी कुंजी को संदर्भित करने का कोई तरीका है, उदा। एक वर्ग पुस्तकालय, एक ही समाधान में ??

सभी मदद की सराहना की जाती है। धन्यवाद

उत्तर

15

हाँ आप ठीक उसी कोड का उपयोग कर सकते हैं। .NET एप्लिकेशन की कॉन्फ़िगरेशन फ़ाइल में कॉन्फ़िगरेशन कुंजी को देखेगा जिसने ऐप डोमेन शुरू किया था। इस तरह के एप्लिकेशन द्वारा उपयोग की जाने वाली कक्षा पुस्तकालय के पास इसकी कॉन्फ़िगरेशन फ़ाइल तक पहुंच होगी।

+0

हाय गेरी, इसे साफ़ करने के लिए धन्यवाद। यह शुरुआत में काम नहीं कर रहा था, लेकिन मैंने सिस्टम के लिए एक संदर्भ जोड़ा। कॉन्फ़िगरेशन और यह सब ठीक काम कर रहा है। समय सीमा समाप्त होने के बाद मैं सही के रूप में चिह्नित करूंगा! – 109221793

+0

धन्यवाद, मैं वास्तव में आपकी प्रतिक्रिया की सराहना करता हूं। –

3

कक्षा पुस्तकालयों में अपनी स्वयं की कॉन्फ़िगरेशन नहीं है। वे जो के विन्यास का उपयोग कभी निष्पादन वे में इस्तेमाल किया जा रहा है।

इसका मतलब है कि आप के लिए आप एक ही कोड का उपयोग करने में सक्षम होना चाहिए, और यह config से सेटिंग दिखाया जाएगा (यह सोचते हैं कि यह वहाँ है)।

यह हमेशा सुविधाजनक हालांकि नहीं है (उदाहरण के लिए यदि आप एक एमएमसी स्नैप-में, इसका मतलब है के रूप में आप प्रणाली फ़ोल्डर में mmc.exe.config को संशोधित करने के लिए एक .net आधारित प्लगइन लिखें।)

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

This question में डीएलएल कॉन्फ़िगरेशन से जुड़े नुकसानों पर कुछ और विवरण हैं, लेकिन यदि आपको आवश्यकता हो तो इसे करने के लिए कुछ तकनीकें भी हैं।

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