2017-10-16 2 views
2

J'ai du code qui fonctionnait correctement avec .NET mais lorsque le code a été porté pour commencer à utiliser le noyau .NET, je ne peux plus exporter l'interface ci-dessous avec l'erreurExportation de l'interface de la classe noyau .NET

le type ou le nom namespace 'ExportAttribute' n'a pas pu être trouvé

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

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

Quel est le problème avec la ligne d'exportation? Est-ce que cela n'est pas autorisé dans le noyau .NET?

+0

Quel est l'espace de noms complet de votre 'Export' attribut? Avez-vous ajouté référence à https://www.nuget.org/packages/System.Composition.AttributedModel/? – haim770

Répondre

6

ExportAttribute fait partie du MEF (Managed Extensibility Framework). Entièrement. NET il est contenu dans System.ComponentModel.Composition dll qui fait partie du framework .NET lui-même.

Dans .NET base, il est contenu dans System.Composition.AttributedModel package NuGet. Donc, installez that nuget package et il sera disponible en tant que System.Composition.ExportAttribute. Ou mieux juste installer le paquet System.Composition qui contient au-dessus de package en tant que dépendance avec d'autres classes (MEF nécessaires tels que CompositionHost).