Procédure pas à pas : Liaison d’un Type de contenu à une Extension de nom de fichierWalkthrough: Linking 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 à l’aide des extensions d’éditeur de Managed Extensibility Framework (MEF).You can define your own content type and link a file name extension to it by using editor Managed Extensibility Framework (MEF) extensions. Dans certains cas, l’extension de nom de fichier a déjà été définie par un service de langage. Toutefois, pour l’utiliser avec MEF vous toujours devez lier à un type de contenu.In some cases, the file name extension has already been defined by a language service; nevertheless, to use it with MEF you still must 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 do not install the Visual Studio SDK from the download center. Il est inclus comme une fonctionnalité facultative dans le programme d’installation de Visual Studio.It is included as an optional feature in Visual Studio setup. Vous pouvez également installer le kit SDK VS ultérieurement.You can also install the VS SDK later on. Pour plus d’informations, consultez l’installation de Visual Studio SDK.For more information, see Installing the Visual Studio SDK.

Création d’un projet MEFCreating a MEF Project

  1. Créez un projet VSIX c#.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 la Type au champ Microsoft.VisualStudio.MefComponent, le Source au 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éfinition du Type de contenuDefining 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, vous devez exporter un ContentTypeDefinition nommé « masqué » et déclarer sa définition de base « texte ».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;  
    }  
    

Liaison d’une Extension de nom de fichier à un Type de contenuLinking a File Name Extension to a Content Type

  • 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’éditeurAdding 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éation d’un glyphe de marge.For example, you can use the margin glyph extension described in Walkthrough: Creating a Margin Glyph.

  2. Ajoutez la classe que vous avez définies 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 du service de langage et de l’éditeurLanguage Service and Editor Extension Points