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
Patricia Arquetteasal
2025-01-14 10:04:44168semak imbas

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>

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

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

Akhir sekali, gunakan kaedah menggunakan Invoke():

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

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!

Kenyataan:
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