MEF .NET Core如何导出CompositionHost?

问题描述 投票:0回答:1

我有下一个代码:

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;
        }
    }

如何将此容器导出到自身?

c# .net .net-core mef .net-standard
1个回答
1
投票

我认为主机不是以CompositionHost的形式出口,而是以CompositionContext的形式出口。您还缺少[ImportingConstructor]属性。

所以代码看起来像这样:

[Export(typeof(IClass1))]
public class Class1 : IClass1
{
    private readonly CompositionContext _compositionContext;

    [ImportingConstructor]
    public Class1(CompositionContext compositionContext)
    {
        _compositionContext = compositionContext;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.