2009-04-13 12 views
35

विजुअल स्टूडियो में .NET कॉन्फ़िगरेशन फ़ाइलें (app.config, web.config, आदि) संपादित करते समय, मुझे अपने एप्लिकेशन की सेटिंग्स चुनते समय मुझे मार्गदर्शन करने के लिए विजुअल स्टूडियो की इंटेलिजेंस मिलती है। यदि मैं एक कस्टम कॉन्फ़िगरेशन अनुभाग जोड़ता हूं, तो मैं अपनी कस्टम सेटिंग्स के लिए इंटेलिजेंस कैसे सक्षम कर सकता हूं? मुझे यकीन है कि इसके लिए एक आसान जवाब होना चाहिए, लेकिन एक सरसरी Google खोज ने मुझे कोई मदद नहीं दी।.config फ़ाइलों में कस्टम सेक्शन के लिए इंटेलिसेंस सक्षम करना

धन्यवाद!

उत्तर

28

आप अपने दृश्य स्टूडियो फ़ाइलों को संशोधित नहीं करना चाहते या दृश्य स्टूडियो फ़ोल्डर में कुछ भी कॉपी हैं, तो आप .xsd फ़ाइल अपनी परियोजना के लिए, गुण में जोड़ने के अपने .config फ़ाइल को खोलने और चयन कर सकते हैं स्कीमा खिड़की (क्लिक […] आइकन):

Screenshot of Visual Studio showing where to find and change the "Schemas" property of your <code>.config</code> file

+5

+1 स्वीकार्य समाधान व्यापक रूप से अभ्यास किया जाता है, लेकिन आपको यह तब तक नहीं करना चाहिए जब तक स्कीमा परिवर्तन मानक और उपयोगी नहीं है, जो आपके कंप्यूटर पर बनाई जा सकने वाली सभी विजुअल स्टूडियो परियोजनाओं के लिए उपयोगी हो। (Http://msdn.microsoft.com/ en-us/library/ms255821.aspx) – Paul

10

आपको अपनी कस्टम सेटिंग्स के लिए एक एक्सएसडी फ़ाइल बनाने और अपने विजुअल स्टूडियो इंस्टॉल की स्कीमा निर्देशिका में कॉपी करने की आवश्यकता है। 2005 के लिए, यह है:% ProgramFiles% \ Microsoft Visual Studio 8 \ XML \ Schemas

यहां कुछ जानकारी दी गई है। http://blogs.msdn.com/astebner/archive/2005/12/07/501466.aspx

+0

बहुत बढ़िया। धन्यवाद! –

31

अन्य उत्तर के रूप में आप अपने कस्टम विन्यास खंड के लिए एक XML स्कीमा दस्तावेज़ उपलब्ध कराने की आवश्यकता का कहना है,। कुछ वैश्विक निर्देशिका में .xsd स्कीमा फ़ाइल जोड़ने की आवश्यकता नहीं है; आप App.config फ़ाइल में अपना कस्टम अनुभाग से सीधे देख सकते हैं:

<configuration> 

    <!-- make the custom section known to .NET's configuration manager --> 
    <configSections> 
    <section name="customSection" type="..." /> 
    </configSections> 

    <!-- your custom section --> 
    <customSection xmlns="http://tempuri.org/customSection.xsd" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:noNamespaceSchemaLocation="customSection.xsd"> 
    ... 
    </customSection> 

<configuration> 

xmlns विशेषता केवल वहाँ नहीं होने पर डिफ़ॉल्ट नाम स्थान निर्धारित करने के लिए, ताकि आप अपने customSection तत्व और सभी पर यह स्थापित करने के लिए की जरूरत नहीं है इसके बच्चे तत्व। (हालांकि, <configuration> तत्व पर xmlns विशेषता नहीं डाल सकते हैं!)

customSection.xsd स्कीमा कि उदाहरण के लिए IntelliSense द्वारा उपयोग किया जाएगा, शामिल हैं:

<xs:schema id="customSectionSchema" 
      targetNamespace="http://tempuri.org/customSection.xsd" 
      elementFormDefault="qualified" 
      xmlns="http://tempuri.org/customSection.xsd" 
      xmlns:mstns="http://tempuri.org/customSection.xsd" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="customSection"> 
    ... 
    </xs:element> 
</xs:schema> 
+0

मुझे अनुभाग में टाइप करने के लिए क्या प्रकार है? टाइप? मैंने अनुमान लगाया और वहां "xmlns" डाला और यह काम करता है ... लेकिन मुझे पूरा यकीन है कि यह गलत है। –

+1

@ प्रिज़नर, आपको एक (कम से कम असेंबली-योग्य) डालना होगा .NET प्रकार का नाम à la '" नेमस्पेस.क्लास, असेंबली "वहां। ढांचा इस प्रकार को तुरंत चालू करेगा और जब भी वह कस्टम कॉन्फ़िगरेशन अनुभाग को पार्स करना चाहता है तो इसका उपयोग करेगा। कुछ पूर्व-परिभाषित अनुभाग हैंडलर कक्षाओं में से कोई भी चुनें, या किसी भी कस्टम क्लास जो 'IConfigurationSectionHandler' इंटरफ़ेस लागू करता है। अधिक जानकारी के लिए, "App.config कस्टम सेक्शन हैंडलर" जैसे कुछ के लिए Google, या इस विषय पर एक लेख पढ़ें [इस कोड प्रोजेक्ट आलेख] (http://www.codeproject.com/KB/aspnet/ConfigSections शुरू करने के लिए .aspx)। – stakx

+0

मुझे पता है कि यह थोड़ा देर हो चुकी है, लेकिन ऐसा लगता है कि कॉन्फ़िगरेशन प्रबंधक कस्टम कॉन्फ़िगरेशन अनुभाग को पढ़ने का प्रयास करता है और यह 'xmlns: xsi' विशेषता को पहचान नहीं सकता है। क्या आप जानते हैं कि मैं इसे ठीक करने के लिए क्या कर सकता हूं? धन्यवाद –

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