Özellikle benim Entity Framework Code First ile oluşturmuş olduğum sınıflarda sıkça kullandığım attribute’lere ulaşma ve özellikleri aracılığıylada değerlerini alıp kullanmada oldukça işime yarıyor makalenin devamında bu konuyu örnekli şekilde görebilirsiniz.
C# ile Attribute Değerini Alma
Alltaki örnekte sırasıyla sınıf içerisindeki property’lere erişiyoruz property’lere tanımlanmış attribute’lere ulaşıyoruz ve attribute property’lerine ulaşıp istediğimiz şekilde değerleriyle ilgili işlemleri gerçekleştiriyoruz. Alttaki örneğimizde ben standart bir console uygulaması açtığınızda oluşturulan Program sınıfına Name ve Surname adında string tipli iki adet property tanımladım bu property’lerde 2 adet DisplayName attribute’ü kullandım burada DisplayName’in herhangi bir işlevi yok ben örnek olması açısından ekledim. Şimdi alttaki kodlarımıza gözatalım ve sonrasında sonuç kısmındaki konsol ekranından sonucu görelim.
C#(Program.cs)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | using System; using System.ComponentModel; namespace ConsoleApplication1 { class Program { [DisplayName("Ad")] public string Name { get; set; } [DisplayName("Soyad")] public string Surname { get; set; } static void Main(string[] args) { var properties = typeof (Program).GetProperties(); foreach (var prop in properties) { var attrs = prop.GetCustomAttributes(true); foreach (var attr in attrs) { if (!(attr is DisplayNameAttribute)) continue;; const string format = "DisplayName Attribute Değeri: {0}"; Console.WriteLine(format, (attr as DisplayNameAttribute).DisplayName); } } Console.ReadLine(); } } } |
Çıktı
1 2 | DisplayName Attribute Değeri: Ad DisplayName Attribute Değeri: Soyad |