22 Şubat 2018 Perşembe

Activator Sınıfı

Giriş
Reflection ile nesne yaratmak içindir.

CreateInstance metodu - default constructor
Public olan default constructor metodunu çağırmak için şöyle yaparız.
Activator.CreateInstance(typeof(MyClass));
Public olan veya olmayan default constructor metodunu çağırmak için şöyle yaparız. İkinci parametre true verilerek nonPublic olan constructor metodların da kullanılması sağlanır.
var type = ...;
// create an instance
var instance = Activator.CreateInstance( type, true);
CreateInstance metodu - parameter constructor
Parametre alan bir constructor şöyle çağrılır. Burada parametre dizisi null verilerek yine default constructor çağrılıyor.
var type = ...;

// create an instance
var instance = Activator.CreateInstance( type, null );
Diğer
Generic olan şu nesneyi yaratmak isteylim
Foo<Bar>
Generic tip belirtmek için şöyle yaparız.
var d1 = typeof(Foo<>);
Type[] typeArgs = { typeof(Bar) };
var makeme = d1.MakeGenericType(typeArgs);
object o = Activator.CreateInstance(makeme);
Object yerine gerçek nesne tipi için şöyle yaparız
Foo<Bar> o = Activator.CreateInstance(makeme) as Foo<Bar>;

Hiç yorum yok:

Yorum Gönder