Assembly.GetAssembly Eğer türünün bir örneği var varsayar ve Type.GetType sen tam tür adı var varsayar: Bir Type
parametre kabul olduğundan, örneğin, bir şey hakkında sadece bu şekilde yapabiliriz hangi montaj adını içerir. Yalnızca temel tipi adınız varsa
, daha böyle bir şey yapmak gerekir:
public static String GetAssemblyNameContainingType(String typeName)
{
foreach (Assembly currentassembly in AppDomain.CurrentDomain.GetAssemblies())
{
Type t = currentassembly.GetType(typeName, false, true);
if (t != null) {return currentassembly.FullName;}
}
return "not found";
}
Bu aynı zamanda tip kök bildirildi varsayar. Ad alanına veya kapsayıcı türlere ad vermeniz veya aynı şekilde yinelemeniz gerekir. Bunu kullanmak durumunda
Muhtemelen aradığınız şeyi bulamadığı durumda ArgumentException atayım. Muhtemelen bu istisnai durum olacaktır ve daha sonra onu bulduğunuzu (veya bir yakalama ifadesinde hata işleme kodunu koyduk) varsayabiliriz. –
BUT, Assembly.GetAssembly türünün bir örneğine ihtiyaç duymaz, sadece türüne ihtiyaç duyar, Yani derleme zamanında türünü bildiğiniz bir şey arıyorsanız, ilk örneğimde olduğu gibi typeof (Type) kullanabilirsiniz. –
Cevaplar için teşekkürler, benim için cazibe gibi çalışıyor. Türü yoktu, sadece tip adını ve bunu içeren bir derleme referansının mevcut olduğunu biliyordum. –