انعكاس

The فئات في the System.Reflection مساحة الاسم, together مع System.Type, تمكين you إلى obtain معلومات حول تم تحميله تجميعات و the أنواع defined within them, such كـ فئات, الواجهات, و القيمة أنواع. You can also استخدم انعكاس إلى إنشاء نوع instances at تشغيل الوقت, و إلى invoke و الوصول them. For topics حول specific aspects of انعكاس, see Related Topics at the إنهاء of this overview.

The وقت تشغيل اللغة العامة loader manages تطبيق domains, which constitute defined boundaries around الكائنات that have the same تطبيق نطاق. This management يتضمن تحميل each تجميع في the appropriate مجال تطبيق و controlling the ذاكرة تخطيط of the نوع هيكلي within each تجميع.

تجميعات contain الوحدات النمطية, الوحدات النمطية contain أنواع, و أنواع contain الأعضاء. انعكاس provides الكائنات that encapsulate تجميعات, الوحدات النمطية, و أنواع. You can استخدم انعكاس إلى dynamically إنشاء an مثيل of a نوع, يربط the نوع إلى an موجود كائن, أو يحصل the نوع من an موجود كائن. You can then invoke the نوع's وظائف أو الوصول its حقول و خصائص. Typical uses of انعكاس تضمين the following:

  • استخدم Assembly إلى define و تحميل تجميعات, تحميل الوحدات النمطية that are listed في the بيان تجميع, و بحث a نوع من this تجميع و إنشاء an مثيل of it.

  • استخدم Module إلى اكتشاف معلومات such كـ the تجميع that يحتوي على the وحدة نمطية? و the فئات في the وحدة نمطية?. You can also يحصل الجميع عمومي وظائف أو غير ذلك specific, nonglobal وظائف defined تشغيل the وحدة نمطية?.

  • استخدم ConstructorInfo إلى اكتشاف معلومات such كـ the اسم, معلمات, الوصول modifiers (such كـ public أو private), و implementation تفاصيل (such كـ abstract أو virtual) of a الدالة الإنشائية. استخدم the GetConstructors أو GetConstructor أسلوب of a Type إلى invoke a specific الدالة الإنشائية.

  • استخدم MethodInfo إلى اكتشاف معلومات such كـ the اسم, return نوع, معلمات, الوصول modifiers (such كـ public أو private), و implementation تفاصيل (such كـ abstract أو virtual) of a أسلوب. استخدم the GetMethods أو GetMethod أسلوب of a Type إلى invoke a specific أسلوب.

  • استخدم FieldInfo إلى اكتشاف معلومات such كـ the اسم, الوصول modifiers (such كـ public أو private) و implementation تفاصيل (such كـ static) of a حقل, و إلى يحصل أو التعيين حقل قيم.

  • استخدم EventInfo إلى اكتشاف معلومات such كـ the اسم, حدث-handler نوع بيانات, مخصص السمات, declaring type, و reflected type of an حدث, و إلى إضافة أو إزالة حدث handlers.

  • استخدم PropertyInfo إلى اكتشاف معلومات such كـ the اسم, نوع بيانات, declaring type, reflected type, و read-فقط أو writable حالة of a خاصية, و إلى يحصل أو التعيين خاصية قيم.

  • استخدم ParameterInfo إلى اكتشاف معلومات such كـ a معلمة's اسم, نوع بيانات, whether a معلمة هو an إدخال أو إخراج معلمة, و the موضع of the معلمة في a أسلوب توقيع.

  • استخدم CustomAttributeData إلى اكتشاف معلومات حول مخصص السمات when you are working في the انعكاس-فقط سياق of an مجال تطبيق. CustomAttributeData allows you إلى examine السمات without creating instances of them.

الفئات System.Reflection.Emitمساحة الاسم بتوفير نموذج متخصصة للانعكاس التي تمكنك من بنية أنواع في وقت التشغيل.

انعكاس can also be used إلى إنشاء applications called نوع المستعرضات, which تمكين users إلى تحديد أنواع و then عرض the معلومات حول those أنواع.

There are غير ذلك uses for انعكاس. Compilers for languages such كـ JScript استخدم انعكاس إلى construct الرمز الجداول. The فئات في the System.Runtime.Serialization مساحة الاسم استخدم انعكاس إلى الوصول بيانات و إلى determine which حقول إلى persist. The فئات في the System.Runtime.Remoting مساحة الاسم استخدم انعكاس indirectly through إنشاء تسلسل.

مواضيع ذات صلة

Title

الوصف

أنواع وقت التشغيل في انعكاس

Describes the internal أنواع, such كـ RuntimeType, that يورث the abstract فئات في the System.Reflection مساحة الاسم و provide much of their implementation.

عرض معلومات نوع

Describes the Type فئة و provides تعليمات برمجية أمثلة that illustrate how إلى استخدم Type مع several انعكاس فئات إلى obtain معلومات حول constructors, وظائف, حقول, خصائص, و أحداث.

أنواع و عام انعكاس

Explains how انعكاس handles the نوع معلمات و نوع الوسيطات of generic أنواع و generic وظائف.

أنماط التصميم المستخدمة فئات بواسطة انعكاس

Provides a جدول showing the أسلوب naming نقش و استخدم of the most frequently used انعكاس فئات, such كـ the Module, Type, و MemberInfo فئات.

اعتبارات الأمان انعكاس

Describes the rules that determine إلى what degree انعكاس can be used إلى اكتشاف نوع معلومات و الوصول أنواع.

تحميله ديناميكياً و استخدام أنواع

Describes the انعكاس مخصص-binding واجهة that supports ربط في وقت التشغيل.

كيفية القيام بما يلي: تحميل تجميعات في سياق انعكاس فقط

Describes the انعكاس-فقط تحميل سياق. Shows how إلى تحميل an تجميع, how إلى اختبار the سياق, و how إلى examine السمات applied إلى an تجميع في the انعكاس-فقط سياق.

الوصول إلى الافتراضي الأعضاء

Demonstrates how إلى استخدم انعكاس إلى الوصول الافتراضي الأعضاء that a فئة might have.

الوصول إلى قيم الافتراضية على وسيطة

Demonstrates how إلى استخدم انعكاس إلى الوصول الوسيطات that have الافتراضي قيم, و how إلى invoke وظائف that have الوسيطات مع الافتراضي قيم.

الوصول إلى السمات مخصصة

Demonstrates using انعكاس إلى استعلام سمة existence و قيم.

تحديد أسماء أنواع مؤهل بالكامل

Describes the تنسيق of fully qualified نوع أسماء في terms of the Backus-Naur نموذج (BNF), و the بناء الجملة مطلوب for specifying خاص حرف/ حروف, تجميع أسماء, pointers, مراجع, و arrays.

انعكاس غير مدار API

Describes الموقع إلى بحث معلومات تشغيل using unmanaged انعكاس إلى examine بيانات التعريف.

كيفية القيام بما يلي: الربط لأعلى تفويض استخدام الانعكاس

Explains how إلى إنشاء a تفويض for a أسلوب و hook the تفويض لأعلى إلى an حدث. Explains how إلى إنشاء an حدث-handling أسلوب at تشغيل الوقت using DynamicMethod.

تبعث أساليب حيوية و تجميعات

Explains how إلى توليد ديناميكي تجميعات و ديناميكي وظائف.

المرجع

System.Type

System.Reflection

System.Reflection.Emit

عودة إلى الأعلى