को देखते हुए है कि मैं एक प्रकार "Wibble.Wobble" है कि एक विधानसभा "Foo.Bar"मौजूदा वर्ग/विधि
और कि विधानसभा में लोड नहीं है में मौजूद है मुख्य आवेदन लोड संदर्भ
वहाँ इसके बाद के भागों में निम्न स्ट्रिंग पार्स करने के लिए किसी मौजूदा सार्वजनिक तंत्र है:
"Wibble.Wobble, Foo.Bar, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xyz"
पूछने के लिए कारण यह है कि है मुझे रनटाइम पर विभिन्न प्रकारों को लोड करने की आवश्यकता है, जिनमें से कुछ वर्तमान लोड संदर्भ में हो सकते हैं। अन्य लोगों को बाहरी असेंबली से लोड करने की आवश्यकता हो सकती है।
मुझे पता है कि वर्तमान लोड संदर्भ Type.GetType("typename")
से प्रकार कैसे लोड करें, मुझे पता है कि एक असेंबली कैसे लोड करें और Assembly.LoadFile("xyz").GetType("abc")
से एक प्रकार प्राप्त करें। मुझे इसमें क्या समस्याएं आ रही हैं कि यदि आप एक असेंबली से किसी प्रकार को लोड करने का प्रयास करते हैं तो यह का पूर्णतः योग्य नाम नहीं होना चाहिए, जहां आप Type.GetType
का उपयोग करते समय कर सकते हैं।
समाधान स्वयं जटिल नहीं होना चाहिए, यह केवल पहले अल्पविराम से पहले स्ट्रिंग को विभाजित कर रहा है। हालांकि मैं जानना चाहता था कि ऑब्जेक्ट प्रस्तुति के रूप में पूरी तरह से योग्य नाम प्राप्त करने का कोई तरीका था, इसलिए मुझे ऐसा करने की ज़रूरत नहीं थी और यह पूरी निर्देशिका के माध्यम से लूप होने के बिना सही असेंबली का पता लगाने में मदद करेगा।
इंडेक्स आपको एक अल्पविराम की पहली घटना देता है, जिसे सामान्य तर्कों में विभाजक के रूप में उपयोग किया जा सकता है। यह सुंदर नहीं होगा –
@ डेविड स्चिमिट फेयर प्वाइंट, मुझे अभी तक उस परिदृश्य से निपटना नहीं है, लेकिन मैंने इंडेक्सऑफ के बजाय LastIndexOf का उपयोग करने के लिए उदाहरण अपडेट किया है। पारितोषिक के लिए धन्यवाद। – Bronumski
LastIndexOf के साथ, यह कभी भी काम नहीं कर सकता है, सिस्टम पर विचार करें। स्ट्रिंग, mscorlib, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b77a5c561934e089 अंतिम सूचकांक केवल सार्वजनिक KeyToken भाग प्राप्त होगा – Alex