प्रोजेक्ट अक्सर फ़ोल्डरों में विभाजित होते हैं, और उन फ़ोल्डरों को आम तौर पर कोड नेमस्पेस पर मैप करने की अपेक्षा की जाती है। हालांकि, मेरी कई मूल परियोजनाओं में मेरे पास कक्षाएं हैं जिन्हें मैंने मौजूदा नामस्थानों में विलय कर दिया है - उदाहरण के लिए मेरे पास एक एमवीसी संदर्भ पुस्तकालय है जो उदाहरण के लिए 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
का डिफॉल्ट नेमस्पेस देगा।
यह एक छोटा सा गपशप है, लेकिन मैं एक विशिष्ट कोड फ़ोल्डर के लिए डिफ़ॉल्ट नामस्थान को ओवरराइड करने में सक्षम होना चाहता हूं ताकि मैं इसे नियंत्रित कर सकूं। कोई विचार यह कैसे प्राप्त करें? मैंने प्रोजेक्ट के लिए एक खाली डिफ़ॉल्ट नामस्थान का प्रयास किया है, जो तर्कसंगत रूप से उप-फ़ोल्डरों के लिए काम कर सकता है, लेकिन स्पष्ट रूप से रूट के लिए नहीं; हालांकि, वीएस प्रॉपर्टी पेज खाली नामस्थान स्वीकार नहीं करता है।
आदर्श रूप से यह एक समाधान होगा कि मैं आसानी से हमारी संपूर्ण देव टीम में दोहराने के लिए सक्षम कर सकता हूं ताकि अन्य डेवलपर्स आर्किटेक्ट/नियोजन चरण में निर्धारित नामस्थान संरचना का पालन करते समय कोड फ़ाइलों को जोड़ने में सक्षम हो सकें।
मुझे डिफ़ॉल्ट नामस्थान सेटिंग के बारे में पता है (कृपया प्रश्न में मेरी बंद टिप्पणियां देखें) और कई परियोजनाएं उपयुक्त नहीं हैं क्योंकि मैं एक डीएलएल में अलग-अलग नामस्थान चाहता हूं - बिना निर्माण प्रक्रिया में शामिल जटिलता को देखते हुए उन्हें मर्ज किए बिना और हस्ताक्षर आदि के साथ जटिलताओं –