Я тоже был озадачен разницей между IoC и MEF.Простейший способ, которым я их описал, заключался в следующем:
MEF - для обнаружения и создания экземпляров того, о чем вы не знаете.
IoC - для запроса чего-то, о чем вы действительно знаете.
Немного контекста.MEF всегда создает экземпляр импорта, который вы запрашиваете хотя бы один раз.Вы не способны создать его самостоятельно и поместить в каталог, готовый к использованию.MEF отвечает за создание и удовлетворение импорта.Динамически загружаемые библиотеки DLL, в которые вы не знаете, какие библиотеки поступают, являются хорошим примером.
IoC, с другой стороны - вы запрашиваете реализацию из текущей библиотеки и получаете ее.Но вы также несете ответственность за обеспечение реализации.
IoC для внедрения зависимости.MEF для расширяемости.