MEF: интерфейс Mark для экспорта

.net,mef,

4

Ответов: 3


4 принят

В текущем предварительном просмотре вы можете попробовать поместить на интерфейс атрибут [PartExportsInherited] (вместе с атрибутом Export). Я не уверен, будет ли это работать для интерфейсов или нет.

Мы планируем добавить поддержку для экспорта на интерфейсы.


3

Да, в текущем предварительном просмотре на codeplex вы можете пометить интерфейс как с PartExportsInherited, так и с Export, чтобы получить, чтобы все разработчики автоматически экспортировались. В предварительном выпуске предварительного просмотра мы, скорее всего, будем оптимизировать это, чтобы просто поместить один атрибут, возможно, что-то вроде [InheritedExport].

Изменить: с предварительным просмотром MEF 6 это можно сделать, поместив в интерфейс атрибут InheritedExport.


2

Обновление: использование MEF v4.

[InheritedExport(typeof(IMyInterface))]
public interface IMyInterface
{
}

Как и ожидалось, все, что наследуется от IMyInterface, будет экспортироваться как одно.

Используйте [ImportMany], чтобы все они были введены:

[ImportingConstructor]
public void MyClass([ImportMany] IEnumerable<IMyInterface> myDerivedObjects)
.net, MEF,
Похожие вопросы