2017-10-16 16 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(Managed Extensibility Framework)の一部です。完全な.NETでは、それは.NETフレームワーク自体の一部であるSystem.ComponentModel.Composition dllに含まれています。

.NETコアではSystem.Composition.AttributedModelナゲットパッケージに含まれています。したがって、that nuget packageをインストールし、System.Composition.ExportAttributeとして入手可能になります。あるいは、上記のパッケージを他の必要なMEFクラス(例えば、CompositionHost)とともに依存関係として含むSystem.Compositionパッケージをインストールするだけです。

関連する問題