Если вы создадите новый экземпляр класса самостоятельно (новый SomeClass ()), контейнер ничего о нем не узнает и не будет его составлять.
Чтобы деталь была составлена MEF, она должна быть создана MEF или явно передана в контейнер. Вы можете вручную указать MEF удовлетворить импорт объекта SomeClass так же, как вы указали его для удовлетворения импорта формы:
SomeClass c = new SomeClass();
_container.SatisfyImports(c);
c.Print();
Однако для этого вам нужен прямой доступ к контейнеру, чтобы он не работал так же хорошо, как и вне вашего класса Form1. В общем, лучший способ сделать это - экспортировать SomeClass и создать импорт в своем классе Form1 для SomeClass:
[Export]
public class SomeClass
{
[Import("Logging", typeof(ILogger))]
public ILogger Log { get; set; }
// etc.
}
public partial class Form1 : Form
{
[Import("Logging", typeof(ILogger))]
public ILogger Log { set; get; }
[Import]
SomeClass _someClass { get; set; }
// etc.
}