2010-01-25 16 views
10

मैं एक डेटाबेस तालिका जहाँ मैं ऊंचाई, चौड़ाई, राज्य की दुकान, वगैरह, खिड़कियों की है। खिड़कियों के लिए पहचानकर्ता के रूप में मैं फॉर्म के पूर्ण प्रकार का नाम उपयोग करता हूं। यह अच्छी तरह से काम करता है, लेकिन मैंने पाया कि सामान्य रूप से कुछ रूपों को नाम मिलते हैं जो अविश्वसनीय रूप से लंबे होते हैं। कारण यह है कि सामान्य प्रकार पूर्ण असेंबली जानकारी के साथ सूचीबद्ध है। क्या इसे छोड़ने का कोई तरीका है?असेंबली जानकारी के बिना सामान्य प्रकार का पूर्ण नाम?

उदाहरण के लिए एक नियमित रूप का पूरा नाम इस प्रकार दिखाई देगा:

Some.Name.Space.NameOfForm 

लेकिन एक सामान्य रूप का पूरा नाम इस प्रकार है:

Some.Name.Space.NameOfForm`1[[Some.Other.Name.Space.GenericType, AssemblyName, Version=1.0.2.0, Cuntulre=neutral, PublicKeyToken=null]] 

क्यों इतने लंबे समय मिलता है ? क्या कोई तरीका है कि मैं एक छोटा संस्करण प्राप्त कर सकता हूं?

Some.Name.Space.NameOfForm`1[[Some.Other.Name.Space.GenericType]] 

कोई सुराग: जैसे उदाहरण कुछ के लिए?

+0

आप नाम कैसे मिलता है? .GetType()। FullName? –

+0

@Tor: यह सही होगा, हाँ। – Svish

+0

@Svish [b8adamson के जवाब] (http://stackoverflow.com/a/4662878/521757) वास्तव में सही है। – jnm2

उत्तर

11

मैं में अपने अंतिम लक्ष्य अजीब लगता है कि dbemerlin से सहमत हैं, लेकिन मैं तो बस करते रहे कि

GetType().ToString(); 

(डब्ल्यू/सामान्य बहस के विधानसभा जानकारी ओ) typename के संक्षिप्त संस्करण वापस जाने के लिए लगता है चाहता था।

मुझे लगता है कि इस प्रकार के नाम का एक और अधिक मानव पठनीय संस्करण के लिए काम हो सकता है।

+4

इस उत्तर होना चाहिए। धन्यवाद। – IllidanS4

2

मुझे लगता है कि सामान्य वर्ग के लिए उपयोग किया जाने वाला प्रकार किसी विशिष्ट असेंबली (जैसा कि अधिकांश .NET कक्षाओं में होता है) पर निर्भर करता है, इसलिए मुझे नहीं लगता कि आपको प्रतिबिंब या स्ट्रिंग पार्सिंग द्वारा मैन्युअल रूप से इस स्ट्रिंग को बनाए बिना कुछ और प्राप्त होगा।

OTOH मैं प्रकार नामों का उपयोग कर के रूप में कुंजी एक अच्छा विचार है, हो सकता है आप कुछ अन्य प्रमुख करने के बारे में सोचना चाहिए नहीं लगता कि (लेकिन मैं आवश्यकताओं पता नहीं है, इसलिए मैं कुछ और करने की अनुशंसा नहीं कर सकते हैं)

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