2017-10-16 95 views
2

我有一些工作正常的代碼使用.NET,但是當代碼被移植到開始使用.NET核心時,我不再能夠導出下面的接口與錯誤從.NET核心導出接口

類型或命名空間名稱「ExportAttribute」找不到

// Interface.cs 
public interface IModule { 
    string name { 
     get; 
    } 
} 

// TestModule.cs 
[Export (typeof (IModule))] 
public class TestModule : IModule { 
} 

什麼是錯的出口線?在.NET核心中是不允許的?

+0

「Export」屬性的完整名稱空間是什麼?您是否添加了對https://www.nuget.org/packages/System.Composition.AttributedModel/的引用? – haim770

回答

6

ExportAttribute是MEF(託管擴展性框架)的一部分。在完整的.NET它包含在System.ComponentModel.Composition DLL是.NET框架本身的一部分。

在.NET Core中它包含在System.Composition.AttributedModel nuget包中。因此安裝that nuget package,它將以System.Composition.ExportAttribute的形式提供。或者,最好只安裝System.Composition軟件包,其中包含上述軟件包作爲依賴項以及其他必要的MEF類(如CompositionHost)。