Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh mendapatkan maklumat atribut dari sifat kelas menggunakan refleksi dalam 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
typeof(Book).GetProperties()
yang mewakili sifat kelas. PropertyInfo
PropertyInfo
untuk memeriksa atribut jenis yang dikehendaki (GetCustomAttributes()
dalam kes ini). Author
Author
dan nilai atribut dari contoh atribut. PropertyInfo
<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>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!