У меня есть ситуация, когда одна и та же сборка (допустим Common.dll) включена в 2 разных модуля (Xaps). Под одной и той же сборкой я подразумеваю сборку, имеющую одинаковые пространства имен и классы, но разные реализации классов/операций.
Теперь оба этих модуля будут помещены в одно приложение-оболочку, а их соответствующие xap-файлы будут загружены через каталог загрузок. Оба xaps будут содержать Common.dll, но с разными реализациями.
Я пытался использовать разные CompositionContainers, по одному для модулей, надеясь, что отдельные контейнеры изолируют модули и их зависимости. Не сработало. Удивительно, но он использовал первый загруженный экземпляр Common.dll. Это отличается от того, что обычно одна и та же сборка перезаписывает первую и использует последнюю загруженную сборку, что дает мне надежду.
Контейнер композиции имеет возможность ReleaseExports. Поможет ли это мне?
Концептуально я думаю, что если мы последовательно удовлетворим импорты, а затем выпустим, каждый модуль должен получить экземпляр правильных операций Common.dll.
Спасибо !