Здравствуйте, baranovda, Вы писали:
B>Дык ведь тогда static-ом или синглтоном придётся делать сам контейнер.
Почему?
Псевдо-код, в котором объект получает ссылку на реализацию сервиса с использованием MEF:
[Export(typeof(IBLLModule))]
public class MyBLLModule
{
[ImportingConstructor]
public MyBLLModule(IDataService dataService)
{
this.dataService = dataService;
...
}
}
Нет тут никакого обращения к статическому классу или синглтону. Ну да, где-то там при инициализации приложения создан контейнер. Но с чего он static или singleton?
B>А ещё бывает так, что в рамках одного процесса необходимо работать с несколькими однотипными сервисами, но связанными с разными источниками данных
На каком-то этапе абстракция от источника данных заканчивается и нужно знать, куда писАть/откуда читать. Вопрос в создании правильных экземпляров сервисов и в логике обращения к ним. В чем проблема-то?