Sviluppo un sistema con plugin, che carica gli assembly in fase di esecuzione. Ho una libreria di interfaccia comune, che condivido tra server e i suoi plugin. Ma, quando effettuo LoadFrom per la cartella plug-in e cercare di trovare tutti i tipi, che implementano l'interfaccia comune IServerModule
ottengo un'eccezione di runtime:Come caricare correttamente il montaggio
Il tipo 'ServerCore.IServerModule' esiste sia 'ServerCore.dll' e ' ServerCore.dll'
che carico plugin come questo:
foreach (var dll in dlls)
{
var assembly = Assembly.LoadFrom(dll);
var modules = assembly.GetExportedTypes().Where(
type => (typeof (IServerModule)).IsAssignableFrom(type)
&& !type.IsAbstract &&
!type.IsGenericTypeDefinition)
.Select(type => (IServerModule)Activator.CreateInstance(type));
result.AddRange(modules);
}
Come posso affrontare questo problema?
sarò gratefull per qualsiasi aiuto
Avete visto questo? http://stackoverflow.com/questions/1057853/the-type-type-exists-in-both-dlls – Halvard
@Halvard Sì, lo so. Ma non ho versioni diverse, ho problemi con loadfrom, che mi carica assembly simile due volte –
Carica ** lo stesso ** assembly due volte o carica ** un assembly simile ** due volte? – Halvard