2010-08-11 11 views
5

मैं दो विधानसभा नामों की तुलना कैसे कर सकता हूं यह पता लगाने के लिए कि वे एक ही असेंबली का प्रतिनिधित्व करते हैं या नहीं? 'बराबर' विधि अतिरंजित नहीं है।मैं दो विधानसभा नामों की तुलना कैसे करूं?

एक तरह से मैं सोच सकता हूं कि दोनों उदाहरणों के 'ToString()' परिणामों की तुलना करें, लेकिन मैं 'समान' वाक्यविन्यास पसंद करूंगा क्योंकि मुझे 'अद्वितीय' विधानसभा नाम की सूची (सूची) तैयार करने की आवश्यकता है और क्या होगा 'कंटेनरनाम आइटम' विधि का उपयोग करना पसंद है।

उत्तर

6

जब तक आप दृढ़ता से नामित असेंबली का उपयोग कर रहे हैं, ToString method के आउटपुट की तुलना ठीक है, क्योंकि यह असेंबली का पूरा नाम आउटपुट करता है, which is supposed to be consistent and seems to be culture-invariant

यदि असेंबली मजबूत नाम नहीं हैं, तो कोई भी एक ही नाम और संस्करण संख्या/संस्कृति के साथ आसानी से एक और असेंबली बना सकता है और यह आपके जैसा ही असेंबली नाम होगा।

हालांकि एक बात ध्यान में रखना है, क्योंकि असेंबली नाम समान हैं इसका मतलब यह नहीं है कि असेंबली एक ही भौतिक पहचान हैं; स्थान असेंबली नाम का हिस्सा है।

+2

जैसी चीज़ को वापस करने के लिए ओवरराइड किया गया है, यदि असेंबली मजबूत नहीं हैं तो यह पर्याप्त साबित नहीं हो सकता है। मुझे मजबूत नामकरण के बिना बहुत यकीन है, दो विधानसभाओं को एक ही नाम दिखाना संभव है, फिर भी वास्तव में अंदर पूरी तरह अलग हो। –

+0

@ मैट: मेरे मामले में मैं सुरक्षित रूप से मान सकता हूं कि मैं दृढ़ता से नामित असेंबली से निपट रहा हूं। – alwayslearning

2

मैं AssemblyName.FullName संपत्ति की तुलना करूंगा, क्योंकि यह असेंबली की वास्तविक संस्करण विशिष्ट पहचान का प्रतिनिधित्व करता है।

+3

'असेंबलीनाम। टॉस्ट्रिंग' को 'असेंबलीनाम' फुलनाम ' –

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