Использование контейнера IOC в Silverlight для динамической загрузки сборки. Это возможно? - PullRequest
0 голосов
/ 07 июля 2010

У меня есть две сборки Silverlight. В сборке 1 я реализовал интерфейс ISnProvider. В сборке 2 у меня есть конкретный класс, который реализует ISnProvider. Я планирую иметь больше сборок, которые будут содержать различные реализации ISnProvider. Сборка 1 не имеет ссылки на сборку 2.

Когда мое приложение silverlight запускается, я хочу разрешить интерфейс ISnProvider с помощью контейнера IOC. В идеале мне не придется перекомпилировать мое приложение, чтобы использовать разных провайдеров. Я не хочу жестко кодировать "assembly2.dll" в моей сборке 1.

Какой контейнер IOC позволит мне динамически загружать эти сборки с помощью silverlight?

Спасибо!

1009 * сантьяго *

1 Ответ

1 голос
/ 08 июля 2010

Возможно, вы захотите взглянуть на Managed Extensibility Framework (MEF) от Microsoft. Это, безусловно, поддержит ваш сценарий ( пример здесь ), хотя, к сожалению, это означает, что вам нужно использовать атрибуты (например, [Import] / [Export]) в различных местах вашего кода.

Autofac доступен в версии Silverlight , и я, безусловно, рекомендую его для общего использования IOC с Silverlight, но я никогда не пытался заставить его динамически загружать сборку без прямой ссылки, и я не уверен, будет ли это поддерживаться в Silverlight (хотелось бы услышать, если кто-нибудь достигнет этого с Autofac)

Вы также можете использовать полу-ручной подход - вот пример динамической загрузки сборки в Silverlight без контейнера IOC, который может или не может быть полезен для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...