Activator.CreateInstance
Activator.CreateInstance ile dinamik örneklemeyi öğrenirsin.
Activator.CreateInstance
Activator.CreateInstance(typeof(T)) bir tipi çalışma zamanında örnekler. object döndürür; tip güvenliğini kullanıcının sağlaması gerekir. DI kapsayıcılar, serileştiriciler ve eklenti sistemleri bu yolla örnek üretir.
Parametreli oluşturucular için Activator.CreateInstance(typeof(T), arg1, arg2) kullanılır; ilgili oluşturucu çağrılır. Tip yalnızca çalışma zamanında biliniyorsa (ör. yapılandırma dosyasından), new yerine Activator kullanılır.
Parametreli oluşturucu
Activator.CreateInstance(typeof(T), 5, "metin") çağrısı, imzası uyan oluşturucuyu bulur ve çağırır. Argüman sayısı, sırası ve türleri eşleşmelidir; aksi halde MissingMethodException fırlatılır.
Sonuç object? olarak döner; gerçek tipe dönüştürmek as veya cast ile yapılır. DI kapsayıcılar, bağımlılıkları çözmek için bu yöntemi kullanır; örneğin Activator.CreateInstance(typeof(MyService), logger).
Uygulama Dinamik örnek üret ve tür adını yazdır
object obj = Activator.CreateInstance(typeof(Sample)); ile dinamik örnek üret. obj.GetType().Name değerini Console.WriteLine ile yazdır.
Örnek çözümü göster
object obj = Activator.CreateInstance(typeof(Sample)); ile örneği üret. Console.WriteLine(obj.GetType().Name); ile tür adını yazdır.
Örnek çözüm:
using System;
class Sample
{
public string Name { get; set; } = "Test";
}
class Program
{
static void Main()
{
object obj = Activator.CreateInstance(typeof(Sample));
Console.WriteLine(obj.GetType().Name);
}
}
Kendini test et
-
Metodu amacına eşle
- Activator.CreateInstance
- Örnek üretir
- typeof(T)
- Type nesnesi verir
- GetType()
- Çalışma zamanı türü
- GetMethods()
- Metot listesi
-
CreateInstance çağrısını tamamla
object obj = Activator.____(typeof(Sample));Cevabı göster
object obj = Activator.CreateInstance(typeof(Sample)); -
Activator.CreateInstance ne döndürür?
- object türünde örnek
- Type nesnesi
- MethodInfo
- null
Cevabı göster
object türünde örnek — Doğru. Activator.CreateInstance object türünde örnek döndürür.