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

  • 99being99

    99being99

    2 EYLÜL 2008
  • BioHunta

    BioHunta

    28 Mayıs 2006
  • Tech4Geeks

    Tech4Geeks

    8 Ocak 2012