Je souhaite charger les plugins de la même manière que shown here, mais les assemblys chargés ne semblent pas partager le même contexte.Contexte lors du chargement des assemblages via Structuremap
Essayer de résoudre le problème Je viens de construire une petite pointe contenant deux assemblages. Une application de console et une bibliothèque. L'application console contient l'interface IPlugin et n'a aucune référence à la DLL du plugin.
Je suis le balayage du plug-in dir en utilisant une convention d'enregistrement personnalisé:
ObjectFactory.Initialize(x => x.Scan(s =>
{
s.AssembliesFromPath(@"..\Plugin");
s.With(new PluginScanner());
}));
public void Process(Type type, Registry registry)
{
if (!type.Name.StartsWith("P")) return;
var instance = ObjectFactory.GetInstance(type);
registry.For<IPlugin>().Add((IPlugin)instance);
}
qui thows une exception coulée invalide en disant « ne peut pas convertir le type de plug-in pour IPlugin ».
En outre, si je viens construis l'instance (qui fonctionne très bien par ailleurs) et essayez d'accéder ObjectFactory dans le plugin ObjectFactory.WhatDoIHave() montre que plug-in instance et instance hôte ne partagent même pas le même récipient exemple.
Expérimentation autour avec MEF, Structuremap et le chargement manuel de l'assembly avec Assembly.Load ("Plugin") montre si chargé avec Assembly.Load il fonctionne très bien. Des idées comment je peux résoudre cela pour travailler avec l'analyse d'assemblage de StructureMaps?