Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh mendapatkan maklumat atribut dari sifat kelas menggunakan refleksi dalam C#?

Bagaimanakah saya boleh mendapatkan maklumat atribut dari sifat kelas menggunakan refleksi dalam C#?

Linda Hamilton
Lepaskan: 2025-01-29 07:52:08
asal
838 orang telah melayarinya

How Can I Retrieve Attribute Information from Class Properties Using Reflection in C#?

menggunakan refleksi untuk mengakses atribut harta dalam C#

Artikel ini menunjukkan bagaimana untuk mendapatkan maklumat atribut yang berkaitan dengan sifat kelas menggunakan keupayaan refleksi C#. Mari kita pertimbangkan kelas

dengan harta Book yang dihiasi dengan atribut Name adat. Matlamat kami adalah untuk mengekstrak kedua -dua nama harta dan nilai atribut (nama pengarang). Author

Proses ini melibatkan langkah -langkah ini:

    Gunakan
  1. untuk mendapatkan pelbagai objek typeof(Book).GetProperties() yang mewakili sifat kelas. PropertyInfo
  2. melewati setiap objek
  3. dan gunakan PropertyInfo untuk memeriksa atribut jenis yang dikehendaki (GetCustomAttributes() dalam kes ini). Author
  4. Jika atribut
  5. dijumpai, dapatkan nama harta dari Author dan nilai atribut dari contoh atribut. PropertyInfo
inilah contoh kod C# yang menggambarkan ini:

<code class="language-csharp">public class AuthorAttribute : Attribute
{
    public string Name { get; set; }
    public AuthorAttribute(string name) { Name = name; }
}

public class Book
{
    [Author("Jane Austen")]
    public string Name { get; set; }
    // ... other properties
}

public static Dictionary<string, string> GetAuthors()
{
    var authors = new Dictionary<string, string>();
    var properties = typeof(Book).GetProperties();

    foreach (var property in properties)
    {
        var attributes = property.GetCustomAttributes(true);
        foreach (var attribute in attributes)
        {
            var authorAttribute = attribute as AuthorAttribute;
            if (authorAttribute != null)
            {
                authors.Add(property.Name, authorAttribute.Name);
            }
        }
    }
    return authors;
}</code>
Salin selepas log masuk
kaedah

ini mengembalikan kamus di mana kunci adalah nama dan nilai harta adalah nama pengarang yang sepadan dari atribut GetAuthors(). Ini secara berkesan menunjukkan bagaimana refleksi membolehkan akses kepada metadata yang dikaitkan dengan ahli kelas. Author

Atas ialah kandungan terperinci Bagaimanakah saya boleh mendapatkan maklumat atribut dari sifat kelas menggunakan refleksi 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