Net Reflection Generic Türler ve Yapıcılarla Çalışma
2023-05-05
Reflection, çalışma zamanında generic türler ve yapıcılarla işlem yapmak için kullanılabilir. Bu makalede, Reflection ile generic türleri ve yapıcıları nasıl kullanabileceğinizi inceleyeceğiz.
Generic Türlerle Çalışma
- Generic Türleri Elde Etme Belirli bir generic türü elde etmek için, ‘Type.MakeGenericType()’ metodunu kullanarak türün generic parametrelerini belirtin.
Type openGenericType = typeof(List<>);
Type closedGenericType = openGenericType.MakeGenericType(typeof(int));
- Generic Türlerin Örneklerini Oluşturma Generic türlerin örneklerini dinamik olarak oluşturmak için ‘Activator.CreateInstance()’ metodunu kullanın.
object instance = Activator.CreateInstance(closedGenericType);
Yapıcılarla Çalışma
- Yapıcıları Elde Etme Belirli bir türün yapıcılarını elde etmek için, ‘Type.GetConstructor()’ ve ‘Type.GetConstructors()’ metodlarını kullanabilirsiniz.
Type myType = typeof(MyClass);
ConstructorInfo defaultConstructor = myType.GetConstructor(Type.EmptyTypes);
ConstructorInfo[] constructors = myType.GetConstructors();
- Yapıcıları Çağırarak Nesneler Oluşturma Yapıcıları çağırarak nesneler oluşturmak için, ‘ConstructorInfo.Invoke()’ metodunu kullanın.
MyClass instance1 = (MyClass)defaultConstructor.Invoke(null);
ConstructorInfo specificConstructor = myType.GetConstructor(new Type[] { typeof(int), typeof(string) });
MyClass instance2 = (MyClass)specificConstructor.Invoke(new object[] { 42, "example" });
Bu makalede, Reflection ile generic türler ve yapıcılarla çalışmayı ele aldık. Generic türlerin nasıl elde edileceğini ve örneklerinin nasıl oluşturulacağını, ayrıca yapıcıların nasıl elde edileceğini ve nesnelerin nasıl oluşturulacağını inceledik.