WebConfigurationManager और कॉन्फ़िगरेशन प्रबंधक के बीच क्या अंतर है?


102

WebConfigurationManagerऔर के बीच अंतर क्या है ConfigurationManager?

मुझे कब एक का उपयोग करना चाहिए?

UPDATED

मैंने सिर्फ देखा WebConfigurationManager, और किसी कारण से, आप कनेक्शन स्ट्रिंग्स तक नहीं पहुंच सकते हैं जैसा कि आप ConfigurationManager(एक सरणी की तरह) करते हैं। क्या कोई मुझे बता सकता है कि एमएस ने ऐसा क्यों बनाया? ऐसा लगता है कि आपको कनेक्शन स्ट्रिंग का उपयोग करने के लिए एक दर्द मिल रहा है WebConfigurationManager

अद्यतन के साथ अद्यतन किया!

यदि आपके पास System.Configurationअपनी परियोजना में जोड़े गए नाम स्थान का संदर्भ नहीं है , तो जब आप कोशिश करते हैं और WebConfigurationManager.ConnectionStringsएक सरणी की तरह एक्सेस करते हैं , तो विजुअल स्टूडियो एक त्रुटि दिखाएगा !


1
मुझे नहीं लगता कि "चेतावनी" बहुत सटीक है। मैं जरूरत के बिना कनेक्शन स्ट्रिंग्स के लिए system.web.configuration का उपयोग करता हूं
।configuration

जवाबों:


95

WebConfigurationManger जानता है कि वेब अनुप्रयोग के भीतर कॉन्फ़िगरेशन वंशानुक्रम से कैसे निपटना है। जैसा कि आप जानते हैं, एक ऐप्लीकेशन में कई web.config फाइलें हो सकती हैं - साइट की जड़ में एक और उपनिर्देशिकाओं में कोई भी संख्या। आप ओवरराइड किए गए कॉन्फिगरेशन को पाने के लिए गेटस्फेक्शन () मेथड को पास कर सकते हैं।

अगर हम रिफ्लेक्टर के साथ WebConfigurationManager को देखेंगे तो चीजें स्पष्ट हैं:

public static object GetSection(string sectionName)
{
    ...
    return ConfigurationManager.GetSection(sectionName);
}

public static object GetSection(string sectionName, string path)
{
    ...
    return HttpConfigurationSystem.GetSection(sectionName, path);
}

25

WebConfigurationManager ASP.NET अनुप्रयोगों के लिए विशेष रूप से बनाया गया है।

WebConfigurationManager वेब एप्लिकेशन पर लागू कॉन्फ़िगरेशन फ़ाइलों को लोड करने के लिए अतिरिक्त तरीके प्रदान करता है।

कॉन्फ़िगरेशन प्रबंधक ".exe" अनुप्रयोगों के लिए लागू कॉन्फ़िगरेशन फ़ाइलों को लोड करने के लिए विधियाँ भी प्रदान करता है।

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


4

हालाँकि WebConfigurationManager System.Web विधानसभा में स्थित है। ConnectionStringSettingsCollection कि यह रिटर्न System.Configuration में स्थित है।

अगर आपको एरर आ रही है

'System.Configuration.ConnectionStringSettingsCollection' के प्रकार की अभिव्यक्ति के साथ अनुक्रमण लागू नहीं कर सकता

सरणी अनुक्रमणिका तक पहुँचने का प्रयास करते समय ...

WebConfigurationManager.ConnectionStrings["Name"].ConnectionString

सुनिश्चित करें कि आपके पास असेंबली System.Configuration का संदर्भ है


3

सुनिश्चित नहीं हैं कि कनेक्शन स्ट्रिंग्स के बारे में आपका क्या मतलब है।

WebConfigurationManager.ConnectionStrings पर कॉल करने पर एक System.Configuration.ConnectionStringSettingsCollection मिलता है, जो कि आपको उसी प्रकार से मिलता है, जैसे कि आप अगर आपको ManManager.ConnectionStrings कहा जाता है ।

अन्यथा, जैसा कि XOR कहता है, यह कई पदानुक्रमित web.configs को संभालने के लिए डिज़ाइन किया गया है, जैसे कि आप किसी एप्लिकेशन में फ़ोल्डर्स के चारों ओर ले जाते हैं, उन्हें आवश्यक रूप से जोड़ते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.