J'ai besoin de charger SomeMixedAssembly.dll
dans le domaine supplémentaire (c'est-à-dire, ce n'est pas le domaine principal) et de décharger ce domaine après avoir terminé la tâche. Aussi le SomeMixedAssembly.dll
charge le SomeMixedAssembly_2.dll
qui est nécessaire pour son travail. Les deux assemblées sont mélangées et écrites pas par moi. Ce n'est pas un problème, mais le problème est le SomeMixedAssembly.dll
charge le SomeMixedAssembly_2.dll
dans le domaine principal également.Est-il possible d'éviter de charger un chargement d'assembly dans `AppDomain`?
Est-il possible d'éviter de charger un chargement d'ensemble dans le AppDomain
principal?
Vous devez créer votre propre proxy qui gère la communication entre le domaine par défaut et votre domaine créé. Ce proxy est ensuite chargé dans son propre domaine et est un wrapper autour des types définis dans 'SomeMixedAssembly'. Ne fuyez aucun des types dans 'SomeMixedAssembly' directement via le proxy. Cela devrait empêcher 'SomeMixedAssembly' d'être chargé dans le domaine par défaut ainsi que ses dépendances. – Igor
Pour clarifier le commentaire Igors, l'assembly ne se charge pas lui-même dans le domaine principal. * Vous * copiez un objet du domaine auxiliaire vers le domaine principal en forçant le type à charger. – usr
Je connais 'AppDomain.AssemblyResolve' et j'utilise un proxy. L'exemple de mon "HelloWorld" est ici (git repository): https://bitbucket.org/Andrey-Bushman/acadcui/wiki/Home Le 'SomeMixedAssembly.dll' est' AcCUI.dll' et le 'SomeMixedAssembly_2.dll' est 'AcDbMgd.dll' dans cet exemple. –