я действительно не понимаю, как это работает.
говорят, что у меня есть классы с тем же интерфейсом, которые я хочу экспортировать.
[Export(typeof(IService))]
[ExportMetadata("ExportType", typeof(Service1))]
public class Service1 : IService
{...}
[Export(typeof(IService))]
[ExportMetadata("ExportType", typeof(Service2))]
public class Service2 : IService
{...}
[Export(typeof(IService))]
[ExportMetadata("ExportType", typeof(Service3))]
public class Service3 : IService
{...}
теперь у меня есть один класс, который импортирует IService иэтот класс не имеет значения, для какой службы он нужен.
public class Blup
{
[ImPortingConstructor]
public Blup(IService service)
{}
}
, чего я сейчас пытаюсь добиться, это создать ExportProvider, который выбирает правильный экспорт при создании.
Примерно так:
public TypeExportProvider<TTypeToExport>() : ExportProvider
{}
Я действительно понятия не имею, как должен выглядеть
protected override IEnumerable<Export> GetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition)
.возможно кто-нибудь знает блог, чтобы прочитать об этом.Есть много пользовательских примеров ExportProvider, но не для этой ситуации.
thx