SORU
21 Ocak 2009, ÇARŞAMBA


Bir yük olabilir .Zamanında ağ takımının bir türü sadece adını bilmek başlatılamadı?

Eğer sadece DLL adı ve sınıf adı varsa, çalışma zamanında bir nesnenin, proje derlemesine eklemeden oluşturmak mümkün mü? Bir sınıf bir arabirim uygulayan, Dersim örneğini bir kez arayüzü koyun.

Derleme adı:

library.dll

Adını yazın:

Şirket.Proje.Code


DÜZENLEME:İ Assembly.LoadFile işe yaramaz bu yüzden DLL dosyasının tam yolu. DLL uygulama kökü, system32, hatta GAC yüklü olabilir.

CEVAP
21 Ocak 2009, ÇARŞAMBA


Evet. Assembly.LoadFrom belleğe derleme yüklemek için kullanmanız gerekir, o zaman Activator.CreateInstance tercih ettiğiniz türünde bir örnek oluşturmak için kullanabilirsiniz. İlk yansıma kullanarak türü bakmak gerekir. İşte bir örnek:

Assembly assembly = Assembly.LoadFrom("MyNice.dll");

Type type = assembly.GetType("MyType");

object instanceOfMyType = Activator.CreateInstance(type);

Güncelleme

Derleme dosya adı ve tür adı varsa, Activator.CreateInstance(assemblyName, typeName) sormak için kullanabilirsiniz .NET tür bir tür içine çözümleme. Eğer başarısız olursa, özellikle aksi aradı olmayabilir ek derlemeler saklayabilirsiniz dizinlerinin bir arama yapabilmek için try/catch ile bitirdik. Bu noktada yukarıdaki yöntemi kullanabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Android Police

    Android Poli

    21 NİSAN 2010
  • campos9896

    campos9896

    24 Mart 2012
  • Slave Boy Films - Fandom from a Galaxy Far Far Away

    Slave Boy Fi

    12 HAZİRAN 2009