- 15 Mar 2018
- 765
- 211
Merhabalar, Bu gün sizlerle kısa öz ve elimden geldiğince yalın bir şekilde bir şekilde Reflection kütüphanesinden bahsedeceğiz.
Peki nedir yahu bu ? Ne işe yarar ?
Reflection kütüphanesi (Türkçe karşılığı aynalama olarak geçmektedir.) esnek bir yapı kullanmak isteyenler için bulunmaz bir nimettir. Programın çalışma anında object üzerindeki verilerin okunmasına hatta değiştirmesine olanak sağlayan tatlı mı tatlı bir kütüphanedir.
hemen anlatmaya başlayalım
Visual studiomuzdan bir konsol uygulaması açıp kütüphanemizi ekleyelim
Şimdi class oluşturalım ve onun üzerinden ilerleyelim
Evet bir adet sınıf oluşturduk şimdi testlerimizi//oynamalarımızı yapabilmek adına bir "User" sınıfından obje oluşturalım.
Reflection ile değişiklik yapmak istiyorsak Type sınıfında bulunan GetProperties fonksiyonu ile nesneye ait özellikleri alabilmekteyiz. Bknz: PropertyInfo
Evet yukarda verdiğim linkte bulunan fonksiyonlarımızı incelediğinizi varsayarak devam ediyoruz.
SetValue fonksiyonu bir nesne ile bağlantısı bulunmamakta olup SetValue fonksiyonuna parametre olarak tanımlamamız lazım.
String üzerinden ilerlediğimiz için parametlererimize "null" veriyoruz bknz;
Yukarda fark ettiğiniz üzere veli yerine VeliTTTTTT olarak yazdım burada en başta nesneye verdiğimiz değeri karşımıza çıkartacaktır.
Ardından SetValue ile nesneyi güncellediğimiz zaman bize "VeliTTTTTT" yazısını çıkartacaktır.
Bu günlük bu kadar reflection yeter diğer fonksiyonları ilerleyen zamanlarda anlatmaya çalışalım.
Kullandığım kaynaklar:
Yansıma (C#)
PropertyInfo Class (System.Reflection)
Peki nedir yahu bu ? Ne işe yarar ?
Reflection kütüphanesi (Türkçe karşılığı aynalama olarak geçmektedir.) esnek bir yapı kullanmak isteyenler için bulunmaz bir nimettir. Programın çalışma anında object üzerindeki verilerin okunmasına hatta değiştirmesine olanak sağlayan tatlı mı tatlı bir kütüphanedir.
hemen anlatmaya başlayalım
Visual studiomuzdan bir konsol uygulaması açıp kütüphanemizi ekleyelim
C#:
using System.Reflection; //kütüphanemizi oluşturduğumuz zaman bu şekilde ekleyebiliriz. Genelde otomatik olarak eklenmektedir lakin yine de kontrol etmekte fayda var.
using System;
C#:
public class User
{
public int Id { get; set; }
public string Isim { get; set; }
}
C#:
var user = new User
{
Id = 1,
Isim = "Veli",
};
Reflection ile değişiklik yapmak istiyorsak Type sınıfında bulunan GetProperties fonksiyonu ile nesneye ait özellikleri alabilmekteyiz. Bknz: PropertyInfo
Evet yukarda verdiğim linkte bulunan fonksiyonlarımızı incelediğinizi varsayarak devam ediyoruz.
SetValue fonksiyonu bir nesne ile bağlantısı bulunmamakta olup SetValue fonksiyonuna parametre olarak tanımlamamız lazım.
String üzerinden ilerlediğimiz için parametlererimize "null" veriyoruz bknz;
C#:
var Isim = IsimProperty.GetValue(user, null);
IsimProperty.SetValue(user, "VeliTTTTTT", null);
Isim = IsimProperty.GetValue(user, null);
Yukarda fark ettiğiniz üzere veli yerine VeliTTTTTT olarak yazdım burada en başta nesneye verdiğimiz değeri karşımıza çıkartacaktır.
Ardından SetValue ile nesneyi güncellediğimiz zaman bize "VeliTTTTTT" yazısını çıkartacaktır.
Bu günlük bu kadar reflection yeter diğer fonksiyonları ilerleyen zamanlarda anlatmaya çalışalım.
Kullandığım kaynaklar:
Yansıma (C#)
PropertyInfo Class (System.Reflection)
Son düzenleme: