j'essaie de diriger les types d'une .dll (qui est également référencé dans le projet d'exécution). J'appelle:assembly.GetTypes() ne retourne pas tous les types
public static void LoadPlugin(string pluginFile)
{
Assembly assembly = Assembly.LoadFrom(pluginFile);
foreach (Type type in assembly.GetTypes())
{
// play with it
}
}
charges Il juste un peu d'entre eux:
public partial class Mathematics : UserControl, IMathematics, IPortable
et
public partial class Welcome : UserControl
mais la suivante, et quelques autres, sont ignorés:
public partial class Test : UserControl, ITest, IPortable
Ils sont tous dans le même assemblage, sous le s ame namespace. La méthode public static void LoadPlugin(string pluginFile)
se trouve dans un autre assembly également référencé dans le projet en cours d'exécution.
Aucune exception n'est levée. Quels pourraient être les problèmes pour ne pas charger tous les types? Des idées?
Je rencontre un problème similaire car GetTypes() ne renvoie PAS toutes les classes PUBLIC définies dans l'assembly et les deux ont l'attribut Export. Je ne sais pas si c'est une coïncidence ou quoi mais il se trouve que le type qui implémente une interface (comme vous l'avez) n'est PAS signalé alors que le type qui n'implémente PAS d'interface est signalé –