लागू करने के लिए प्रयास कर रहा है मैं Assembly.GetTypes() उपयोग कर रहा हूँ सभी प्रकार के एक प्लगइन पुस्तकालय में द्वारा परिभाषित प्राप्त करने के लिए (इसलिए मैं प्लगइन उदाहरणों का दृष्टांत सकते हैं)।ReflectionTypeLoadException: प्रकार एक दुर्गम इंटरफ़ेस
Type <Type> is attempting to implement an inaccessible interface
Googling ऐसा लगता है क्योंकि विशिष्ट प्रकार एक गैर सरकारी इंटरफ़ेस लागू करता है:
एक विशेष पुस्तकालय पर, विधि कह एक ReflectionTypeLoadException बढ़ा,। और वास्तव में यह है, लेकिन टाइप एक अन्य सार्वजनिक वर्ग में निहित है, जिसे निजी घोषित किया गया है।
इस अपवाद से कैसे बचें?
....
निर्मित इंटरफ़ेस सार्वजनिक कोड काम करता है। क्या यह अजीब व्यवहार परिभाषित करना संभव है एक बग (विधानसभा में। गेट टाइप())? इसका मतलब यह है कि एक लाइब्रेरी प्रकार संरक्षित इंटरफेस लागू नहीं कर सकता है!
यह है एक प्रकार को तत्काल करने के लिए मेजबान को कठिन समय देने के लिए मूर्खतापूर्ण। असेंबली। गेट टाइप() * कभी * आवश्यक नहीं होना चाहिए। फैक्ट्री क्लास को एक अच्छा नाम दें। –
@ हंस, क्या आप फैक्ट्री क्लास का सुझाव दे रहे हैं कि एक विशिष्ट नेमस्पेस * और * नाम होना चाहिए जो एक मेजबान अपेक्षा करेगा ताकि वे सीधे 'टाइप' को पकड़ सकें? –
@ * हंस पासेंट * यह उचित लगता है। लेकिन मूल समस्या अभी तक हल नहीं हुई है। क्या होगा यदि प्रकार सार्वजनिक नहीं है और गैर-सार्वजनिक इंटरफ़ेस लागू करता है? – Luca