Net Reflection Türetilmiş Sınıfların ve Arabirimlerin Kullanımı
2023-05-05
Reflection, çalışma zamanında türetilmiş sınıflar ve uygulanan arabirimler üzerinde işlem yapmak için kullanılabilir. Bu makalede, Reflection ile türetilmiş sınıfları ve arabirimleri nasıl kullanabileceğinizi inceleyeceğiz.
Türetilmiş Sınıflarla Çalışma
- Türetilmiş Sınıfları Bulma Belirli bir temel sınıftan türetilen sınıfları bulmak için, derlemedeki tüm türleri inceleyin ve ‘Type.IsSubclassOf()’ metodunu kullanarak temel sınıfı kontrol edin.
Type baseType = typeof(MyBaseClass);
Assembly assembly = Assembly.GetExecutingAssembly();
List<Type> derivedTypes = assembly.GetTypes().Where(type => type.IsSubclassOf(baseType)).ToList();
- Türetilmiş Sınıfların Örneklerini Oluşturma Türetilmiş sınıfların örneklerini dinamik olarak oluşturmak için ‘Activator.CreateInstance()’ metodunu kullanın.
List<MyBaseClass> instances = new List<MyBaseClass>();
foreach (Type derivedType in derivedTypes)
{
MyBaseClass instance = (MyBaseClass)Activator.CreateInstance(derivedType);
instances.Add(instance);
}
Arabirimlerle Çalışma
- Arabirimleri Uygulayan Sınıfları Bulma Belirli bir arabirimi uygulayan sınıfları bulmak için, derlemedeki tüm türleri inceleyin ve ‘Type.GetInterface()’ metodunu kullanarak arabirimi kontrol edin.
Type interfaceType = typeof(IMyInterface);
Assembly assembly = Assembly.GetExecutingAssembly();
List<Type> implementingTypes = assembly.GetTypes().Where(type => type.GetInterface(interfaceType.FullName) != null).ToList();
- Arabirimleri Uygulayan Sınıfların Örneklerini Oluşturma Arabirimleri uygulayan sınıfların örneklerini dinamik olarak oluşturmak için ‘Activator.CreateInstance()’ metodunu kullanın.
List<IMyInterface> instances = new List<IMyInterface>();
foreach (Type implementingType in implementingTypes)
{
IMyInterface instance = (IMyInterface)Activator.CreateInstance(implementingType);
instances.Add(instance);
}
Bu makalede, Reflection ile türetilmiş sınıflar ve arabirimlerin kullanımını ele aldık. Türetilmiş sınıfların ve arabirimleri uygulayan sınıfların çalışma zamanında nasıl bulunacağını ve dinamik olarak örneklerinin nasıl oluşturulacağını inceledik.