मैं नामस्थान और कक्षा के नाम के संयोजन का उपयोग करके विस्तार विधियों को व्यवस्थित करता हूं, और यह आपके द्वारा प्रश्न में वर्णित तरीके के समान है।
आम तौर पर मेरे समाधान में मेरे पास "प्राथमिक असेंबली" है जो साझा कार्यक्षमता (जैसे विस्तार विधियों) का बहुमत प्रदान करता है। चर्चा के लिए हम इस असेंबली "फ्रेमवर्क" को कॉल करेंगे।
फ्रेमवर्क असेंबली के भीतर, मैं उन चीज़ों के नामस्थानों की नकल करने की कोशिश करता हूं जिनके लिए मेरे पास विस्तार विधियां हैं। उदाहरण के लिए, यदि मैं System.Web.Http अनुप्रयोग का विस्तार कर रहा हूं, तो मेरे पास "फ्रेमवर्क। वेब" नामस्थान होगा। "सिस्टम" नामस्थान में "स्ट्रिंग" और "ऑब्जेक्ट" जैसी कक्षाएं, उस असेंबली में रूट "फ्रेमवर्क" नामस्थान में अनुवाद करती हैं।
आखिरकार, नामकरण पंक्तियों के साथ चला जाता है जो आपने प्रश्न में निर्दिष्ट किया है - प्रत्यय के रूप में "एक्सटेंशन" के साथ प्रकार का नाम।
- फ्रेमवर्क (नाम स्थान)
- Framework.ObjectExtensions (वर्ग)
- Framework.StringExtensions (वर्ग)
- Framework.Web (नाम स्थान)
: यह इस तरह एक वर्ग पदानुक्रम पैदावार
- फ्रेमवर्क। वेब। एचटीपीएप्लिकेशंस एक्सटेंशन (कक्षा)
लाभ यह है कि, एक रखरखाव के नजरिए से, यह एक दिया प्रकार के लिए विस्तार तरीकों को खोजने जाना वास्तव में आसान बाद में है।
स्रोत
2008-09-18 20:48:31
वाह, मेरी पहली विस्तार कक्षा बनाने से पहले मैंने इस जवाब में अच्छी बात की। – Sung