Я хотел бы знать, как я могу импортировать импорт в свой пользовательский ExportProvider. Вот пример того, что я пытаюсь сделать:Удовлетворение импорта в пользовательском ExportProvider
public class MyExportProvider : ExportProvider
{
private List<Export> _exports;
[Import()]
private IConfig _config;
public MyExportProvider()
base()
{
_exports = new List<Export>();
}
protected override IEnumerable<Export> GetExportsCore(ImportDefinition definition,
AtomicComposition composition)
{
if (!_exports.Any())
Initialize();
return _exports.Where(x => definition.IsConstraintSatisfiedBy(s.Definition);
}
private void Initialize()
{
var contractName = typeof(MyObject).FullName;
var exportDefinition = new ExportDefinition(contractName, null);
var export = new Export(exportDefinition,() => new MyObject(_config));
_exports.Add(export);
}
}
Я добавляю поставщика, когда я создаю CompositionContainer.
К сожалению, импорт не выполняется. Я могу это увидеть, установив AllowDefaults = true, чтобы мой провайдер был создан, но _config всегда имеет значение null.
Как настроить контейнер и/или провайдер, чтобы импорт был выполнен?
Мы не можем отменить голоса. Но вы можете сделать это сами, теперь, когда он был отредактирован (да, я говорю о другом ответе) – NullUserException