انعكاس (C# و Visual Basic)
يوفر انعكاس الكائنات (من نوع Type) التي تصف التجميعات و الوحدات النمطية و الأنواع. يمكنك إستخدام الانعكاس لتنشئ و بشكل حيوي مثيل لنوع أو تربط النوع إلى كائن موجود أو الحصول على النوع من كائن موجود و استدعاء الأساليب الخاصة به أو الوصول إلى حقوله وخصائصه. في حالة إستخدامك السمات في التعليمات البرمجية الخاصة بك, فإن الإنعكاس يمكنك من الوصول إليهم. لمزيد من المعلومات، راجع لتوسيع بيانات التعريف باستخدام السمات.
وفيما يلي مثال بسيط على الانعكاس بإستخدام أسلوب ثابت GetType- موروث بواسطة كل أنواع إسناد فئةObjectللحصول على نوع متغير:
' Using GetType to obtain type information:
Dim i As Integer = 42
Dim type As System.Type = i.GetType()
System.Console.WriteLine(type)
// Using GetType to obtain type information:
int i = 42;
System.Type type = i.GetType();
System.Console.WriteLine(type);
الناتج هو:
System.Int32
يستخدم المثال التالي انعكاس للحصول على الاسم الكامل للتجميع المحمل.
' Using Reflection to get information from an Assembly:
Dim info As System.Reflection.Assembly = GetType(System.Int32).Assembly
System.Console.WriteLine(info)
// Using Reflection to get information from an Assembly:
System.Reflection.Assembly info = typeof(System.Int32).Assembly;
System.Console.WriteLine(info);
الناتج هو:
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
ملاحظة
الكلمات الأساسية ل #C protected و internalلا معنى لها في IL و غير مستخدمة في انعكاس واجهات برمجة التطبيقات (APIs). شروط المطابقة في IL هي العائلة و التجميع . لتعريف خاصيةinternalبإستخدام الانعكاس, إستخدم الأسلوب IsAssembly. لتعريف أسلوب protected internalإستخدم IsFamilyOrAssembly.
نظرة عامة حول الانعكاس
الإنعكاس مفيد في الحالات التالية:
عندما تحتاج للوصول إلى السمات في بيانات التعريف للبرنامج. لمزيد من المعلومات، راجع استرداد معلومات مخزنة في سمات.
فحص و إنشاء الأنواع في التجميع.
إنشاء أنواع جديدة في وقت التشغيل. إستخدام فئات في System.Reflection.Emit.
لأداء الربط المتأخر يتم إنشاء أساليب الوصول في الأنواع بوقت التشغيل. راجع موضوع تحميل بشكل حيوي و استخدام أنواع.
الأقسام ذات الصلة
لمزيد من المعلومات:
راجع أيضًا:
المرجع
مجالات التطبيق (C# و Visual Basic)
المبادئ
التجميعات في وقت تشغيل اللغة العامة