Assembly.GetAssembly suppose que vous avez une instance du type et Type.GetType suppose que vous avez le nom de type complet qui inclut le nom de l'assembly.
Si vous n'avez que le nom du type de base, vous devez faire quelque chose de plus comme ceci:
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";
}
Cela suppose également que votre type est déclaré à la racine. Vous devez fournir l'espace de noms ou les types englobants dans le nom, ou effectuer une itération de la même manière.