Я играю с новым System.ComponentModel.Composition пространством имен в .NET 4.0 beta 2, также известным как Managed Extensibility Framework .
Я использую следующий пример C #, где Monkey
импортирует Banana
:
public interface IBanana
{
}
[Export(typeof(IBanana))]
public class Banana : IBanana
{
}
public class Monkey
{
[Import(typeof(IBanana))]
public IBanana Banana { get; set; }
}
Однако, когда я пытаюсь составить обезьяну следующим образом, я получаю InvalidOperationException
с сообщением " Этот объект не был инициализирован - должно быть установлено свойство 'SourceProvider'. ":
var exportProvider = new CatalogExportProvider(new TypeCatalog(typeof(Banana)));
var container = new CompositionContainer(exportProvider);
var monkey = new Monkey();
container.ComposeParts(monkey);
Что мне здесь не хватает? Я знаю, что могу передать каталог напрямую, не помещая его в CatelogExportProvider, но разве вышеприведенное также не сработает?