Позвольте мне объяснить очень упрощенный пример того, что мне нужно. Предположим, что у меня есть VS-решение, которое использует MEF и имеет следующую, широкую структуру проектов и классов.Как я могу использовать один и тот же объект CompositionConainer (или он содержит сборки) в моем решении?
- Сервер (Project)
- Server.cs (Содержит
Main
метод, для запуска приложения.)
- Server.cs (Содержит
- Shared (проект)
- \ Контракты
- ILogger.cs
- ISettings.cs
- \ Контракты
- Настройки (Project)
- MySettings.cs (класс, реализующий ISettings)
- Logger (проект
- MyLogger.cs (класс осуществление ILogger)
Учитывая ...
- Все вышеперечисленные проекты ссылаются на общий проект.
- Сервер является стартовым приложением, которое инициализирует все каталоги в контейнер приложения.
... Я могу запустить приложение и инициализировать синглтон из MySettings
и MyLogger
из моей Server
приложения. Все идет нормально.
Теперь давайте предположим, что MyLogger
должен получить доступ к файлу настроек для выходного каталога. Значение для местоположения каталога сохраняется в объекте MySettings
, который инициализируется в Server.cs
в CompositonContainer
.
Поскольку я использую MEF, я не хочу ссылаться на проект Settings
в рамках проекта Logger
. Вместо этого я хотел бы использовать MEF для получения текущих приложений ISettings
singleton, который был инициализирован в начале моего приложения Server
и существует с серверами CompositionContainer
.
Как я могу правильно получить доступ к одиночному тону MySettings
в пределах MyLogger
с использованием MEF?
Thabk вы для ответа! Когда я вернусь в свой офис в понедельник, я проверю это. Кажется, это решение. – RLH