Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Membaca Atribut Kelas pada Runtime dalam C#?

Bagaimanakah Saya Boleh Membaca Atribut Kelas pada Runtime dalam C#?

Linda Hamilton
Lepaskan: 2025-01-12 08:55:42
asal
357 orang telah melayarinya

How Can I Read Class Attributes at Runtime in C#?

Mengakses Atribut Kelas Secara Dinamik dalam C#

Mengakses atribut kelas pada masa jalan ialah teknik yang berkuasa untuk mendapatkan semula metadata atau maklumat konfigurasi secara dinamik. Ini boleh dicapai menggunakan keupayaan pantulan C#.

Mendapatkan Atribut Khusus (DomainNameAttribute):

Kaedah generik, GetDomainName<T>, memudahkan mendapatkan DomainNameAttribute daripada mana-mana kelas:

<code class="language-csharp">public string GetDomainName<T>()
{
    var dnAttribute = typeof(T).GetCustomAttributes(typeof(DomainNameAttribute), true)
                               .FirstOrDefault() as DomainNameAttribute;
    return dnAttribute?.Name;
}</code>
Salin selepas log masuk

Contoh penggunaan:

<code class="language-csharp">// Returns "MyTable" (assuming myclass has the attribute)
string domainName = GetDomainName<myclass>();</code>
Salin selepas log masuk

Pendekatan Lebih Umum untuk Akses Atribut:

Untuk kebolehgunaan yang lebih luas, kaedah lanjutan yang lebih umum membenarkan pengambilan semula mana-mana jenis atribut dan sifat khususnya:

<code class="language-csharp">public static class AttributeExtensions
{
    public static TValue GetAttributeValue<TAttribute, TValue>(
        this Type type, 
        Func<TAttribute, TValue> valueSelector) 
        where TAttribute : Attribute
    {
        var attribute = type.GetCustomAttributes(typeof(TAttribute), true)
                            .FirstOrDefault() as TAttribute;
        return attribute != null ? valueSelector(attribute) : default(TValue);
    }
}</code>
Salin selepas log masuk

Contoh penggunaan:

<code class="language-csharp">string name = typeof(MyClass).GetAttributeValue((DomainNameAttribute dna) => dna.Name);</code>
Salin selepas log masuk

Kaedah ini mengambil jenis atribut dan ungkapan lambda untuk memilih nilai sifat yang diingini daripada tika atribut. Ini memberikan fleksibiliti untuk mengakses pelbagai sifat atribut.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Atribut Kelas pada Runtime dalam C#?. 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