Share via


Exemplarische Vorgehensweise: Verknüpfen eines Inhaltstyps mit einer Dateinamenerweiterung

Sie können ihren eigenen Inhaltstyp definieren und eine Dateinamenerweiterung mit ihr verknüpfen, indem Sie die Editorerweiterungen für verwaltetes Extensibility Framework (MEF) verwenden. In einigen Fällen wird die Dateinamenerweiterung bereits von einem Sprachdienst definiert. Um es jedoch mit MEF zu verwenden, müssen Sie ihn trotzdem mit einem Inhaltstyp verknüpfen.

Erstellen eines MEF-Projekts

  1. Erstellen Sie ein C#VSIX-Projekt. (Im Dialogfeld "Neues Projekt ", wählen Sie Visual C# / Erweiterbarkeit und dann VSIX-Projekt aus.) Benennen Sie die Lösung ContentTypeTest.

  2. Wechseln Sie in der Datei "source.extension.vsixmanifest" zur Registerkarte "Assets", und legen Sie das Feld "Typ" auf "Microsoft.VisualStudio.MefComponent", das Feld "Quelle" auf ein Projekt in der aktuellen Projektmappe und das Feld "Projekt" auf den Namen des Projekts fest.

Definieren des Inhaltstyps

  1. Fügen Sie eine Klassendatei hinzu, und nennen Sie sie FileAndContentTypes.

  2. Fügen Sie Verweise auf die folgenden Assemblys hinzu:

    1. System.ComponentModel.Composition

    2. Microsoft.VisualStudio.Text.Logic

    3. Microsoft.VisualStudio.CoreUtility

  3. Fügen Sie die folgenden using Direktiven hinzu.

    using System.ComponentModel.Composition;
    using Microsoft.VisualStudio.Text.Classification;
    using Microsoft.VisualStudio.Utilities;
    
    
  4. Deklarieren Sie eine statische Klasse, die die Definitionen enthält.

    internal static class FileAndContentTypeDefinitions
    {. . .}
    
  5. Exportieren Sie in dieser Klasse den ContentTypeDefinition Namen "hid", und deklarieren Sie die Basisdefinition als "Text".

    internal static class FileAndContentTypeDefinitions
    {
        [Export]
        [Name("hid")]
        [BaseDefinition("text")]
        internal static ContentTypeDefinition hidingContentTypeDefinition;
    }
    
  • Um diesen Inhaltstyp einer Dateinamenerweiterung zuzuordnen, exportieren Sie eine FileExtensionToContentTypeDefinition Datei, die die Erweiterung "hid " und den Inhaltstyp "hid" enthält.

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

Hinzufügen des Inhaltstyps zu einem Editorexport

  1. Erstellen Sie eine Editorerweiterung. Sie können z. B. die in exemplarische Vorgehensweise beschriebene Erweiterung "Randglyphe" verwenden: Erstellen einer Glyphe für den Rand.

  2. Fügen Sie die klasse hinzu, die Sie in dieser Prozedur definiert haben.

  3. Wenn Sie die Erweiterungsklasse exportieren, fügen Sie ihr einen ContentTypeAttribute "hid"-Typ hinzu.

    [Export]
    [ContentType("hid")]