Bir Nesnenin Alanlarını Yönetmek | C#

Merhaba, elimizde çok sayıda alanı olan bir nesne olduğunu düşünelim. Bu nesne bir veritabanı tablosunun model karşılığı da olabilir. Bize bu nesnede işlem yapmak için çok az sayıda alan gerektiği durumlar olduğunda, geriye kalan alanları NULL olarak bırakmamak için tek tek alan türüne göre atama yapmak gerekiyor.

Bunu kolaylaştırmak için; kendisine gelen nesnenin(türü ne olursa olsun) tüm alanlarında dolaşıp, o alanların boş değerlerini türüne göre atayan bir metot hazırladım.

public static T SabitAlanlariDoldur<T>(T nesne)
{
  IList<PropertyInfo> lstOzellik = typeof(T).GetProperties().ToList();
  foreach (PropertyInfo ozellik in lstOzellik)
  {
     if (typeof(string) == ozellik.PropertyType) ozellik.SetValue(nesne, "");
     if (typeof(Int16) == ozellik.PropertyType) ozellik.SetValue(nesne, 0);
     if (typeof(Int32) == ozellik.PropertyType) ozellik.SetValue(nesne, 0);
     if (typeof(Int64) == ozellik.PropertyType) ozellik.SetValue(nesne, 0);
     if (typeof(Decimal) == ozellik.PropertyType) ozellik.SetValue(nesne, 0.0m);
     if (typeof(DateTime) == ozellik.PropertyType) ozellik.SetValue(nesne, Sabitler.MinimumTarih);
     if (typeof(Nullable<Int16>) == ozellik.PropertyType) ozellik.SetValue(nesne, 0);
     if (typeof(Nullable<Int32>) == ozellik.PropertyType) ozellik.SetValue(nesne, 0);
     if (typeof(Nullable<Int64>) == ozellik.PropertyType) ozellik.SetValue(nesne, 0);
     if (typeof(Nullable<DateTime>) == ozellik.PropertyType) ozellik.SetValue(nesne, Sabitler.MinimumTarih);
     if (typeof(Nullable<Decimal>) == ozellik.PropertyType) ozellik.SetValue(nesne, 0.0m);
  }
  return nesne;
}

Selamlar.

Leave a Reply

Your email address will not be published. Required fields are marked *