Procédure pas à pas : Lier un type de contenu à une extension de nom de fichierWalkthrough: Link a content type to a file name extension

Vous pouvez définir votre propre type de contenu et lier une extension de nom de fichier en utilisant les extensions de Managed Extensibility Framework (MEF) de l’éditeur.You can define your own content type and link a file name extension to it by using the editor Managed Extensibility Framework (MEF) extensions. Dans certains cas, l’extension de nom de fichier est déjà définie par un service de langage.In some cases, the file name extension is already defined by a language service. Toutefois, pour l’utiliser avec MEF, vous devez toujours lier à un type de contenu.But, to use it with MEF, you must still link it to a content type.

PrérequisPrerequisites

À partir de Visual Studio 2015, vous n’installez pas le Kit de développement logiciel Visual Studio à partir du centre de téléchargement.Starting in Visual Studio 2015, you don't install the Visual Studio SDK from the download center. Il est inclus comme fonctionnalité facultative dans le programme d’installation de Visual Studio.It's included as an optional feature in Visual Studio setup. Vous pouvez également installer le kit SDK VS par la suite.You can also install the VS SDK later on. Pour plus d’informations, consultez installer le SDK Visual Studio.For more information, see Install the Visual Studio SDK.

Créer un projet MEFCreate a MEF project

  1. Créez un projet c# VSIX.Create a C# VSIX project. (Dans le nouveau projet boîte de dialogue, sélectionnez Visual c# / extensibilité, puis projet VSIX.) Nommez la solution ContentTypeTest.(In the New Project dialog, select Visual C# / Extensibility, then VSIX Project.) Name the solution ContentTypeTest.

  2. Dans le source.extension.vsixmanifest fichier, accédez à la actifs onglet et définissez le Type champ Microsoft.VisualStudio.MefComponent, le Source champ un projet dans la solution actuelleet le projet champ pour le nom du projet.In the source.extension.vsixmanifest file, go to the Assets tab, and set the Type field to Microsoft.VisualStudio.MefComponent, the Source field to A project in current solution, and the Project field to the name of the project.

Définir le type de contenuDefine the content type

  1. Ajoutez un fichier de classe et nommez-le FileAndContentTypes.Add a class file and name it FileAndContentTypes.

  2. Ajoutez des références aux assemblys suivants :Add references to the following assemblies:

    1. System.ComponentModel.CompositionSystem.ComponentModel.Composition

    2. Microsoft.VisualStudio.Text.LogicMicrosoft.VisualStudio.Text.Logic

    3. Microsoft.VisualStudio.CoreUtilityMicrosoft.VisualStudio.CoreUtility

  3. Ajoutez le code suivant using directives.Add the following using directives.

    using System.ComponentModel.Composition;  
    using Microsoft.VisualStudio.Text.Classification;  
    using Microsoft.VisualStudio.Utilities;  
    
  4. Déclarez une classe statique qui contient les définitions.Declare a static class that contains the definitions.

    internal static class FileAndContentTypeDefinitions  
    {. . .}  
    
  5. Dans cette classe, exporter un ContentTypeDefinition nommé « masqué » et déclarer sa définition de base pour être « text ».In this class, export a ContentTypeDefinition named "hid" and declare its base definition to be "text".

    internal static class FileAndContentTypeDefinitions  
    {  
        [Export]  
        [Name("hid")]  
        [BaseDefinition("text")]  
        internal static ContentTypeDefinition hidingContentTypeDefinition;  
    }  
    
  • Pour mapper ce type de contenu à une extension de nom de fichier, exporter un FileExtensionToContentTypeDefinition qui porte l’extension .hid et le type de contenu « masqué ».To map this content type to a file name extension, export a FileExtensionToContentTypeDefinition that has the extension .hid and the content type "hid".

    internal static class FileAndContentTypeDefinitions  
    {  
         [Export]  
         [Name("hid")]  
         [BaseDefinition("text")]  
        internal static ContentTypeDefinition hidingContentTypeDefinition;  
    
         [Export]  
         [FileExtension(".hid")]  
         [ContentType("hid")]  
        internal static FileExtensionToContentTypeDefinition hiddenFileExtensionDefinition;  
    }  
    

Ajouter le type de contenu à une exportation de l’éditeurAdd the content type to an editor export

  1. Créer une extension de l’éditeur.Create an editor extension. Par exemple, vous pouvez utiliser l’extension de glyphe de marge décrite dans procédure pas à pas : créer un glyphe de marge.For example, you can use the margin glyph extension described in Walkthrough: Create a margin glyph.

  2. Ajoutez la classe que vous avez défini dans cette procédure.Add the class you defined in this procedure.

  3. Lorsque vous exportez la classe d’extension, ajoutez un ContentTypeAttribute de type « masqué » à ce dernier.When you export the extension class, add a ContentTypeAttribute of type "hid" to it.

    [Export]  
    [ContentType("hid")]  
    

Voir aussiSee also

Points d’extension éditeur et le service de langageLanguage service and editor extension points