J'ai un problème qu'une DLL chargée sur mon nouveau Appdomain est également chargée dans le domaine principal principal!Problèmes avec AppDomain et DLL utilisée après le déchargement
J'ai une classe "Servicebase" qui appartient à MarshalByRefObject.
Maintenant, j'ai différentes classes enfants qui héritent de cette classe de base.
Ces classes enfants doivent être installées dans leur propre domaine d'application.
Ce que je fais avec ce code:
AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = Path.GetDirectoryName(dllFile);
setup.ApplicationName = Path.GetFileNameWithoutExtension(dllFile);
setup.LoaderOptimization = LoaderOptimization.MultiDomainHost;
setup.ShadowCopyFiles = "true";
setup.ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
hostAppDomain = AppDomain.CreateDomain(setup.ApplicationName, AppDomain.CurrentDomain.Evidence, setup);
cela fonctionne ...
maintenant je crée mon exemple avec ce code:
host = hostAppDomain.CreateInstanceFrom(dllFile, className.Split(',')[0]);
quand je vérifie maintenant avec « AppDomain .CurrentDomain.GetAssemblies() "mon assembly d'instance n'est pas chargé dans mon assembly principal.
Mais après exceuting ceci:
var inst = (ServiceBase)host.Unwrap();
mon montage actuel a également chargé le dll.
Quelqu'un peut-il me dire pourquoi? Et que pouvais-je faire?