Návod: Propojení typu obsahu s příponou názvu souboru

Vlastní typ obsahu můžete definovat a propojit s ním příponu názvu souboru pomocí rozšíření MEF (Managed Extensibility Framework). V některých případech je přípona názvu souboru už definovaná službou jazyka. Pokud ho ale chcete použít se systémem MEF, musíte ho přesto propojit s typem obsahu.

Vytvoření projektu MEF

  1. Vytvořte projekt VSIX jazyka C#. (V Dialogové okno Nový projekt , vyberte Visual C# / Rozšiřitelnost a pak projekt VSIX.) Pojmenujte řešení ContentTypeTest.

  2. V souboru source.extension.vsixmanifest přejděte na kartu Prostředky a nastavte pole Typ na Microsoft.VisualStudio.MefComponent, zdrojové pole do projektu v aktuálním řešení a pole Project na název projektu.

Definování typu obsahu

  1. Přidejte soubor třídy a pojmenujte ho FileAndContentTypes.

  2. Přidejte odkazy na následující sestavení:

    1. System.ComponentModel.Composition

    2. Microsoft.VisualStudio.Text.Logic

    3. Microsoft.VisualStudio.CoreUtility

  3. Přidejte následující using direktivy.

    using System.ComponentModel.Composition;
    using Microsoft.VisualStudio.Text.Classification;
    using Microsoft.VisualStudio.Utilities;
    
    
  4. Deklarujte statickou třídu, která obsahuje definice.

    internal static class FileAndContentTypeDefinitions
    {. . .}
    
  5. V této třídě exportujte pojmenovanou ContentTypeDefinition "hid" a deklarujte její základní definici jako text.

    internal static class FileAndContentTypeDefinitions
    {
        [Export]
        [Name("hid")]
        [BaseDefinition("text")]
        internal static ContentTypeDefinition hidingContentTypeDefinition;
    }
    
  • Pokud chcete tento typ obsahu namapovat na příponu názvu souboru, exportujte FileExtensionToContentTypeDefinition příponu .hid a typ obsahu "hid".

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

Přidání typu obsahu do exportu editoru

  1. Vytvořte rozšíření editoru. Můžete například použít rozšíření glyph okrajů popsané v návodu: Vytvoření glyfů okrajů.

  2. Přidejte třídu, kterou jste definovali v tomto postupu.

  3. Když exportujete třídu rozšíření, přidejte ContentTypeAttribute do ní typ "hid".

    [Export]
    [ContentType("hid")]