Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menggunakan Kaedah Peribadi Secara Dinamik Menggunakan Refleksi dalam C#?

Bagaimanakah Saya Boleh Menggunakan Kaedah Peribadi Secara Dinamik Menggunakan Refleksi dalam C#?

Barbara Streisand
Lepaskan: 2025-01-25 05:26:13
asal
489 orang telah melayarinya

How Can I Dynamically Invoke Private Methods Using Reflection in C#?

Mengakses Kaedah Peribadi Menggunakan C# Reflection

Refleksi menawarkan cara yang berkuasa untuk berinteraksi dengan kaedah peribadi secara dinamik. Walau bagaimanapun, fungsi GetMethod() standard sahaja tidak akan mengakses ahli persendirian. Had ini diatasi dengan menggunakan BindingFlags penghitungan.

Penyelesaian:

Untuk mendapatkan semula kaedah peribadi, ubah suai panggilan GetMethod() anda untuk memasukkan BindingFlags yang diperlukan. Contoh ini menunjukkan cara:

MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, 
    BindingFlags.NonPublic | BindingFlags.Instance);
Salin selepas log masuk

Di sini, BindingFlags.NonPublic memastikan kaedah peribadi disertakan dalam carian dan BindingFlags.Instance menyatakan bahawa kami sedang mencari kaedah contoh (berbanding dengan kaedah statik). Dengan bendera ini, GetMethod() akan berjaya mencari kaedah peribadi.

Selepas itu, gunakan kaedah persendirian menggunakan kaedah Invoke() pada objek MethodInfo yang dikembalikan, membekalkan parameter yang diperlukan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Kaedah Peribadi Secara Dinamik Menggunakan Refleksi dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan