내 사용자 정의 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