2009-09-29 13 views
5

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

क्या आंतरिक कक्षाओं को खोजने के लिए DefaultConventionScanner से पूछने का कोई तरीका है?

उत्तर

9

नहीं, और वास्तव में सीमाएं जो कक्षाएं सार्वजनिक होनी चाहिए, सभी संरचनाओं पर लागू होती है - न सिर्फ सम्मेलन स्कैनर। यदि आप InternalsVisibleTo विशेषता का उपयोग करते हैं, तो स्ट्रक्चर मैप के साथ मैन्युअल रूप से आंतरिक प्रकार पंजीकृत कर सकता है, लेकिन यह अच्छी तरह से समर्थित या दस्तावेज़ीकृत नहीं है। आप एक ITypeScanner (जैसे DefaultConventionScanner) बनाने में सक्षम नहीं होंगे जो आंतरिक प्रकारों को पंजीकृत करता है क्योंकि असेंबली स्कैनर केवल निर्यात किए गए प्रकारों का खुलासा करता है।

+0

यह नोट करते हुए कि यह उत्तर कई साल पुराना है ... क्या यह अभी भी मामला है? –

+0

हां, यह अभी भी मामला है। "दृश्यों के पीछे, स्ट्रक्चर मैप नेट्रल का उपयोग कर रहा है। नेट एक्सएलआर से टाइप प्रकार और ..." - http://structuremap.github.io/registration/auto-registration-and-conventions/ –

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