Bir Türden yeni bir nesne örneği nasıl oluşturulur
Derleme zamanında bir nesnenin Tip
i her zaman bilinmeyebilir, ancak Tip
in bir örneğini oluşturmak gerekebilir. Bir Type
dan yeni bir nesne örneğini nasıl elde edersiniz?
689
3
Kök
System
ad alanı içindekiActivator
sınıfı oldukça güçlüdür.Yapıcıya parametre aktarmak için çok sayıda aşırı yükleme vardır. Adresindeki belgelere göz atın:
veya (yeni yol)
İşte bazı basit örnekler:
Bu sorunun bir uygulaması, Type'ın parametresiz kurucusunu çağırmaya çalışmaktır:
İşte genel bir yöntemde yer alan aynı yaklaşım:
Bu, bir uygulama örneğinde çok fazla çağrılacak bir şey içinse, aktivatör veya
ConstructorInfo.Invoke()
kullanmak yerine dinamik kodu derlemek ve önbelleğe almak çok daha hızlıdır. Dinamik derleme için iki kolay seçenek derlenmiş Linq Expressions veya bazı basitIL
opcodes andDynamicMethod
. Her iki şekilde de, sıkı döngüler veya çoklu çağrılara girmeye başladığınızda fark çok büyüktür.