12 Şubat 2018 Pazartesi

DefaultValueAttribute Anotasyonu

Giriş
Sınıf içinde meta data olarsak saklanır. Açıklaması şöyle
A DefaultValueAttribute will not cause a member to be automatically initialized with the attribute's value. You must set the initial value in your code.
Basit bir extension metodu ile tüm anotasyonlar üzerinde dolaşıp auto propert alanlara değer atayabiliriz.

Ya da kendi sınıfımıza bir metod ekleyebiliriz.

Örnek
Şöyle yaparız.
public static class ObjectExtensions
{
  public static void InitializePropertyDefaultValues(this object obj)
  {
    PropertyInfo[] props = obj.GetType().GetProperties();
    foreach (PropertyInfo prop in props)
    {
      var d = prop.GetCustomAttribute<DefaultValueAttribute>();
      if (d != null)
        prop.SetValue(obj, d.Value);
    }
  }
}

Hiç yorum yok:

Yorum Gönder