2012-08-29 9 views
10

.NET 4.5 के साथ, CLR टीम कहा:.NET 4.5 में कोई CallerTypeNameAttribute क्यों नहीं है?

क्यों एक फोन करने वाले के प्रकार के लिए जोड़ा नहीं गया था?

+0

क्या सदस्य नाम में उपसर्ग के रूप में टाइप नाम है? – CodesInChaos

+0

@CodesInChaos यह ऐसा नहीं दिखता है। –

+0

"एक्स क्यों नहीं है एक्स के लिए मानक प्रतिक्रिया है?" "एक्स के पास वाई क्यों होना चाहिए?" आपके द्वारा सूचीबद्ध तीन विशेषताओं के लिए वास्तविक उपयोग के मामलों पर विचार किया गया था। मैं उत्सुक हूं, कॉलर के प्रकार के लिए आपका उपयोग केस क्या है? – hvd

उत्तर

1

डिज़ाइन टीम के बाहर किसी के लिए उत्तर देना मुश्किल है लेकिन मैं कहूंगा कि CallerTypeNameAttribute के लिए कोई मजबूत उपयोग केस नहीं है।

फ़ाइल और लाइन विशेषताएँ आपको लॉगिंग दिनचर्या के लिए विस्तारित जानकारी देती हैं जो अन्यथा प्राप्त करना असंभव होगा। सदस्य का नाम INotifyPropertyChanged के कार्यान्वयन को लॉगिंग और सरल बनाता है जबकि तारों को खोजने की आवश्यकता के बिना सुरक्षित नाम रीफैक्टरिंग की इजाजत देता है।

कॉलर प्रकार पहले से ही typeof(CurrentType).Name का उपयोग करके किसी दिए गए विधि को पारित किया जा सकता है, इसलिए शायद यह एक अतिरिक्त विशेषता योग्यता नहीं देता है। आप कह सकते हैं कि कॉलर सदस्य का नाम पहले से ही MethodBase.GetCurrentMethod का उपयोग करके प्राप्त किया जा सकता है, लेकिन शायद यह हमेशा प्रतिबिंब को मजबूर करता है और typeof शायद ऑप्टिमाइज़ किया गया है ताकि आपको सुरक्षित रिफैक्टरिंग का लाभ मिल सके और प्रदर्शन पर कम प्रभाव हो।

संभव विशेषता के बजाय typeof का उपयोग करने का एकमात्र नकारात्मक पक्ष यह होगा कि विशेषता दृष्टिकोण obfuscation से प्रभावित नहीं होगा।

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