2011-03-05 10 views
6

एएसपी.नेट के साथ, उदाहरण के लिए, हम ऐपडोमेन में असेंबली पर प्रतिबिंबित कर सकते हैं, या उस प्रकार का उपयोग करके हम कक्षा (प्रोप, विधियों इत्यादि) के बारे में मेटाडेटा प्राप्त कर सकते हैं। सिल्वरलाइट में कक्षा में मेटाडेटा निकालने, निर्भरता गुण निकालने आदि के लिए उपयोग की जाने वाली तकनीक क्या है?सिल्वरलाइट प्रतिबिंब

उत्तर

5

पूर्ण .NET Framework में प्रदान किए गए एपीआई के सबसेट के साथ सिल्वरलाइट में प्रतिबिंब मौजूद है।

एक उल्लेखनीय अंतर यह है कि आप सिल्वरलाइट में निजी सदस्यों पर प्रतिबिंबित नहीं कर सकते हैं (या शायद आप अपनी असेंबली के अंदर कर सकते हैं, लेकिन सीमाएं बहुत जल्दी स्पष्ट होनी चाहिए)। यह सुनिश्चित करने के लिए एक सुरक्षा सुविधा है कि आप स्वयं ढांचे के आंतरिक के साथ गड़बड़ नहीं करते हैं।

इसके अलावा (स्वीकार्य रूप से, बल्कि बड़ी) सीमा, प्रतिबिंब मूल रूप से वही होना चाहिए।

+0

आप निजी सदस्यों पर प्रतिबिंबित कर सकते हैं लेकिन आप उन्हें संशोधित या आमंत्रित नहीं कर सकते हैं। मैंने फ़ील्डइन्फो के लिए GetValue को कॉल करने के लिए उदाहरण के लिए प्रयास किया है लेकिन SetValue को कॉल करने में सक्षम नहीं था, यह एक अपवाद फेंकता है। –

4

ऑस्टिन ने जो कहा, इसके अतिरिक्त, सिल्वरलाइट में प्रतिबिंब के साथ नियम यह है कि आप केवल सामान्य कोड के माध्यम से जो कुछ भी प्राप्त कर सकते हैं, उसके प्रतिबिंब के माध्यम से पहुंच सकते हैं। तो यह सिर्फ निजी सदस्यों के बारे में नहीं है। आप संरक्षित सदस्यों पर केवल वर्ग में या किसी भी वर्ग में विरासत में इसे प्रतिबिंबित कर सकते हैं।

एपीआई के कई लापता टुकड़े कर रहे हैं, लेकिन सामान्य रूप में सबसे बातें, संभव हो जाना चाहिए, भले ही वे

0

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

संख्यात्मक प्रकार और सदस्य, और उनके मेटाडेटा की जांच करें।

गणना और असेंबली और मॉड्यूल की जांच करें।

सार्वजनिक सदस्यों तक पहुंचें।

कॉलिंग कोड की असेंबली में आंतरिक सदस्यों (विजुअल बेसिक में मित्र सदस्य) तक पहुंचें। (प्रतिबिंब में, इसे असेंबली-स्तरीय पहुंच के रूप में जाना जाता है।)

सिल्वरलाइट में, आप निजी प्रकारों और सदस्यों तक पहुंचने के लिए प्रतिबिंब का उपयोग नहीं कर सकते हैं। यदि किसी प्रकार या सदस्य का एक्सेस स्तर आपको स्थिर रूप से संकलित कोड में इसे एक्सेस करने से रोक देगा, तो आप प्रतिबिंब का उपयोग कर गतिशील रूप से इसका उपयोग नहीं कर सकते हैं।