CodeBlanks Logo Icon CodeBlanks

Activator.CreateInstance

C# kursu · İleri seviye · Ders 45/83

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

  1. Metodu amacına eşle

    Activator.CreateInstance
    Örnek üretir
    typeof(T)
    Type nesnesi verir
    GetType()
    Çalışma zamanı türü
    GetMethods()
    Metot listesi
  2. CreateInstance çağrısını tamamla

    object obj = Activator.____(typeof(Sample));
    Cevabı göster
    object obj = Activator.CreateInstance(typeof(Sample));
  3. 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.

İleri seviye bölümündeki tüm dersler