Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mendapatkan Nama Harta sebagai Rentetan dalam C# Reflection?

Bagaimanakah Saya Boleh Mendapatkan Nama Harta sebagai Rentetan dalam C# Reflection?

Patricia Arquette
Lepaskan: 2025-01-12 10:23:44
asal
800 orang telah melayarinya

How Can I Get a Property Name as a String in C# Reflection?

Gunakan refleksi C# untuk mendapatkan rentetan nama atribut

Apabila menggunakan pantulan, selalunya perlu mendapatkan nama sifat sebagai rentetan. Ini menjadi sangat diperlukan apabila nama harta mungkin berubah semasa pemfaktoran semula, atau apabila sifat diakses dari jauh melalui antara muka generik.

Kaedah tradisional adalah untuk menentukan nama atribut secara manual sebagai parameter ketiga kaedah seperti ExposeProperty(). Walau bagaimanapun, pendekatan ini terdedah kepada ralat dan memerlukan pengemaskinian berterusan jika nama harta berubah.

Penyelesaian C# 6.0: nama ungkapan

C# 6.0 menyediakan penyelesaian terbina dalam: nameof ungkapan. Ungkapan ini membolehkan anda mendapatkan semula nama harta secara langsung sebagai rentetan pada masa penyusunan.

<code class="language-csharp">string name = nameof(SomeClass.SomeProperty);</code>
Salin selepas log masuk

Ungkapan di atas akan mengembalikan rentetan "SomeProperty" walaupun harta itu kemudian dinamakan semula.

Kod pantulan ringkas

Menggunakan ungkapan nameof, kami boleh memudahkan kaedah ExposeProperty() dan menghapuskan keperluan untuk menentukan nama sifat secara manual:

<code class="language-csharp">public void ExposeProperty(string secretName, Type classType, string propertyName)
{
    // 使用反射获取属性信息
    PropertyInfo propertyInfo = classType.GetProperty(propertyName);

    // 使用反射公开属性
    RemoteMgr.ExposeProperty(secretName, classType, propertyInfo);
}</code>
Salin selepas log masuk

Kaedah ini memastikan bahawa nama harta yang digunakan untuk akses jauh sentiasa terkini, tanpa mengira perubahan yang dibuat semasa pemfaktoran semula.

Dengan memanfaatkan nameof ungkapan, pembangun boleh meningkatkan kebolehselenggaraan dan keteguhan kod mereka dengan mendapatkan semula nama sifat secara dinamik sebagai rentetan, menghapuskan potensi pepijat dan memastikan operasi reflektif kekal tepat walaupun selepas pengubahsuaian kod.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nama Harta sebagai Rentetan dalam C# 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