www.tursoft.net
tursoft@tursoft.net
Atom v1.0My Yahoo! hesabına ekleMy MSN hesabına ekle
Uğur Umutluoğlu
GEZEGENIEEE
Bilen YAVUZ
Reflection Nedir?
 
Reflection class'ı sayesinde, çalışma zamanında assembly, class, interface ve object'ler hakkında bilgi edinilebilir hatta member'larına erişip invoke edebilirsiniz. Bu sayede kodların dinamik olarak çalıştırılması mümkün olmaktadır.
Reflection namespace'i aşağıdaki gibidir.

System.Reflection

.NET dillerinden biri ile geliştirilen tüm türler assemly'ler içerisinde paketlenir. .NET Reflection ise size assembly'leri inceleme ve dinamik olarak method çağırılı, object üretimi gibi olanaklarda sağlamaktadır. Bunun yanında, kodunuzun içerisinden dinamik olarak memory'de assembly'ler yaratmanıza da olanak vermektedir ki ben bu makalemde bu konuya girmeyeceğim.

.NET Reflection'ın gücünü küçük bir örnekle görmeye çalışalım.

Örnek Kod

// Form sınıfının tam ismi verilerek(namespaceleri de
// dahil olmak üzere) bir type nesnesi üretiliyor
Type myType=Type.GetType("System.Windows.Forms.Form"); 

// Bu sınıfın hiç parametre almayan ve public
// olan constructorı için bir ConstructorInfo
//
nesnesi üretiliyor
ConstructorInfo cInfo=myType.GetConstructor(null); 

// Invoke methodu aracılığıyla constructor
// çalıştırılıp, bir form nesnesi üretiliyor
object frm=cInfo.Invoke(null);

// Tekrar bu tür üzerindeki Show isimli
// method'tan bir MethodInfo nesnesi üretiliyor
MethodInfo mInfo=myType.GetMethod("Show",null);

Cuma, Mayıs 13, 2005  @ 17:33 0 yorum var
Copyright (c) 2006 Muhammet TURŞAK - Tüm hakları saklıdır.