10

प्रोजेक्ट अक्सर फ़ोल्डरों में विभाजित होते हैं, और उन फ़ोल्डरों को आम तौर पर कोड नेमस्पेस पर मैप करने की अपेक्षा की जाती है। हालांकि, मेरी कई मूल परियोजनाओं में मेरे पास कक्षाएं हैं जिन्हें मैंने मौजूदा नामस्थानों में विलय कर दिया है - उदाहरण के लिए मेरे पास एक एमवीसी संदर्भ पुस्तकालय है जो उदाहरण के लिए System.Web.Mvc, या System.ComponentModel.DataAnnotations में अतिरिक्त प्रकार जोड़ता है।वीएस -2010 के स्वचालित फ़ोल्डर को ओवरराइड कैसे करें-> नई सीएस फाइलों में नेमस्पेस मैपिंग

अन्य परियोजनाओं में, मेरे पास इंटरफेस का एक सूट और उन इंटरफेस के डिफ़ॉल्ट कार्यान्वयन का एक सूट हो सकता है; इसलिए मैं कोड फ़ाइलों को दो अलग फ़ोल्डरों (जैसे 'ऑब्जेक्ट्स' और 'इंटरफेस') में विभाजित कर सकता हूं लेकिन मैं Objects और Interfaces उप नामस्थान नहीं चाहता हूं।

समान रूप से, मैं अक्सर अन्य पुस्तकालयों में प्रकारों के लिए विस्तार विधियां लिखता हूं - उदा। System.String, जो मैं System नामस्थान में विलय करता हूं ताकि जैसे ही आप असेंबली का संदर्भ लें, वे पहले से ही 'वहां' हैं।

तो इस तरह की एक परियोजना संरचना को देखते हुए (पहले उत्तर के जवाब में, इस परियोजना के सभी नामस्थान के साथ एक एकल विधानसभा का उत्पादन करने का इरादा है, और एक dll कि हस्ताक्षर किए जा सकता है हो सकता है):

Our.Core.Library 
|->System 
| |->StringExtensions.cs 
|->System.Web.Mvc 
| |->AnotherModelBinder.cs 
|->OurCoreClass.cs 

उपर्युक्त में, मैं रूटस्पेस Our.Core.Library में रूट में जोड़े गए नए फाइलों को जोड़ना चाहता हूं, लेकिन मैं सिस्टम और सिस्टम में नई फाइलों को जोड़ना चाहता हूं। वेब.एमवीसी फ़ोल्डर्स क्रमश: System और System.Web.Mvc में होने चाहिए। लेकिन वीएस उन्हें Our.Core.Library.System का डिफॉल्ट नेमस्पेस देगा।

यह एक छोटा सा गपशप है, लेकिन मैं एक विशिष्ट कोड फ़ोल्डर के लिए डिफ़ॉल्ट नामस्थान को ओवरराइड करने में सक्षम होना चाहता हूं ताकि मैं इसे नियंत्रित कर सकूं। कोई विचार यह कैसे प्राप्त करें? मैंने प्रोजेक्ट के लिए एक खाली डिफ़ॉल्ट नामस्थान का प्रयास किया है, जो तर्कसंगत रूप से उप-फ़ोल्डरों के लिए काम कर सकता है, लेकिन स्पष्ट रूप से रूट के लिए नहीं; हालांकि, वीएस प्रॉपर्टी पेज खाली नामस्थान स्वीकार नहीं करता है।

आदर्श रूप से यह एक समाधान होगा कि मैं आसानी से हमारी संपूर्ण देव टीम में दोहराने के लिए सक्षम कर सकता हूं ताकि अन्य डेवलपर्स आर्किटेक्ट/नियोजन चरण में निर्धारित नामस्थान संरचना का पालन करते समय कोड फ़ाइलों को जोड़ने में सक्षम हो सकें।

उत्तर

0

मूल रूप से एक ही रास्ता मैं करने में सक्षम हो जा रहा हूँ के लिए अलग अलग हो हो सकता है के तहत निषिद्ध है क्या यह विजुअल स्टूडियो में अपना खुद का विस्तार लिखना है। इसे अपने स्वयं के प्रोजेक्ट या आइटम विज़ार्ड की भी आवश्यकता हो सकती है - अगर मैं कुछ भी काम कर सकता हूं तो मैं इसे भविष्य में यहां पोस्ट करूंगा।

0

प्रत्येक सी # प्रोजेक्ट सेटिंग्स में एप्लिकेशन टैब में Default namespace विकल्प होता है जिसे आप किसी अन्य मूल्य में बदल सकते हैं जो प्रोजेक्ट में अधिक फ़ाइलें जोड़ते समय प्रभावी होगा। सिर्फ एक ही सेटिंग परियोजना

enter image description here

आप कई परियोजनाओं में अपनी परियोजना को तोड़ने और डिफ़ॉल्ट विभिन्न परियोजनाओं

+1

मुझे डिफ़ॉल्ट नामस्थान सेटिंग के बारे में पता है (कृपया प्रश्न में मेरी बंद टिप्पणियां देखें) और कई परियोजनाएं उपयुक्त नहीं हैं क्योंकि मैं एक डीएलएल में अलग-अलग नामस्थान चाहता हूं - बिना निर्माण प्रक्रिया में शामिल जटिलता को देखते हुए उन्हें मर्ज किए बिना और हस्ताक्षर आदि के साथ जटिलताओं –

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