Зависит от ваших требований / существующего кода.
Если у вас есть существующая инфраструктура кода, построенная на контейнере IoC, вы можете фактически объединить их с MEF. Недавно я создавал среду ASP.NET MVC + MEF, и несколько моих читателей спрашивали, как интегрировать Unity с созданной мной средой MEF + MVC. Это оказалось действительно легко благодаря проекту под названием Common Services Locator .
Проект CSL разработан для предоставления абстракции по расположению службы, поэтому я могу взять провайдера CSL для Unity, подключить его к пользовательскому ExportProvider, и MEF автоматически начнет создавать детали, управляемые IoC.
Это одно из преимуществ модели MEFs ExportProvider: вы можете легко подключить любых дополнительных провайдеров, чтобы начать получать экспорт из различных источников.
На прошлой неделе Я писал о комбинировании MEF + Unity (а также MEF + Autofac в качестве другого примера), и хотя мои примеры подготовлены для ASP.NET MVC, концепция для большинства других аналогична. реализации.
Если у вас есть возможность создать что-то новое с использованием MEF, вы, вероятно, обнаружите, что вам не понадобится контейнер IoC, MEF может обрабатывать внедрение свойств, внедрение конструктора, управление временем жизни детали и разрешение типов.
Дайте мне знать, если у вас есть какие-либо вопросы:)