Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mendapatkan Rujukan Kelas daripada String dalam C# Menggunakan Reflection?

Bagaimanakah Saya Boleh Mendapatkan Rujukan Kelas daripada String dalam C# Menggunakan Reflection?

Patricia Arquette
Lepaskan: 2025-01-14 10:04:44
asal
170 orang telah melayarinya

How Can I Get a Class Reference from a String in C# Using Reflection?

Menggunakan Refleksi untuk Mendapatkan Rujukan Kelas C# daripada Rentetan

Refleksi C# menyediakan mekanisme yang berkuasa untuk mengakses dan memanipulasi maklumat jenis masa jalan secara dinamik. Ini termasuk mendapatkan semula rujukan kelas hanya menggunakan perwakilan rentetannya.

Prosesnya:

Kaedah teras untuk tugasan ini ialah Type.GetType(). Kaedah ini menerima rentetan yang mengandungi nama jenis yang layak sepenuhnya dan mengembalikan objek Type yang mewakili jenis itu.

Contoh:

Katakan anda mempunyai kelas bernama FooClass. Untuk mendapatkan objek Typenya:

<code class="language-csharp">string className = "FooClass";
Type type = Type.GetType(className);</code>
Salin selepas log masuk

Untuk mengakses kaedah statik dalam FooClass (cth., MyMethod), gunakan GetMethod():

<code class="language-csharp">MethodInfo method = type.GetMethod("MyMethod", BindingFlags.Static | BindingFlags.Public);</code>
Salin selepas log masuk

Akhir sekali, gunakan kaedah menggunakan Invoke():

<code class="language-csharp">method.Invoke(null, null); // null for static methods, null for no parameters</code>
Salin selepas log masuk

Ingat bahawa null digunakan sebagai hujah pertama untuk kaedah statik (tiada contoh diperlukan) dan hujah kedua ialah tatasusunan parameter (null jika kaedah tidak mengambil parameter).

Mengendalikan Perhimpunan Luar:

Contoh di atas menganggap FooClass berada dalam perhimpunan yang sama. Untuk jenis yang terletak dalam perhimpunan yang berbeza, anda mesti membekalkan nama pemasangan sebagai sebahagian daripada nama jenis yang layak sepenuhnya. Format yang tepat bergantung pada lokasi perhimpunan. Rujuk dokumentasi MSDN untuk panduan terperinci tentang menentukan nama pemasangan dalam kaedah Type.GetType().

Penerokaan Selanjutnya:

Untuk pemahaman yang lebih teliti tentang refleksi C#, rujuk dokumentasi rasmi Microsoft pada Type.GetType(), MethodInfo.GetMethod() dan MethodInfo.Invoke(). Sumber ini menawarkan butiran komprehensif dan senario penggunaan lanjutan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Rujukan Kelas daripada String dalam C# Menggunakan Reflection?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan