#c# #.net #.net-core #mef #.net-standard
#c# #.net #.net-core #mef #.net-стандартный
Вопрос:
У меня есть следующий код:
var configuration = new ContainerConfiguration().WithAssemblies(filteredLibraries, conventionBuilder);
CompositionHost container = configuration.CreateContainer();
Один из экспортируемых классов следующий:
[Export(typeof(IClass1))]
public class Class1 : IClass1
{
private readonly CompositionHost _host;
public Class1(CompositionHost host)
{
_host = host;
}
}
Как экспортировать этот контейнер в себя?
Ответ №1:
Я думаю, что хост экспортируется не как CompositionHost
, а как CompositionContext
. Вам также не хватает [ImportingConstructor]
атрибута.
Итак, код будет выглядеть следующим образом:
[Export(typeof(IClass1))]
public class Class1 : IClass1
{
private readonly CompositionContext _compositionContext;
[ImportingConstructor]
public Class1(CompositionContext compositionContext)
{
_compositionContext = compositionContext;
}
}