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

můžete definovat vlastní typ obsahu a propojit s ním příponu názvu souboru pomocí rozšíření editor Managed Extensibility Framework (MEF). V některých případech je přípona názvu souboru již definovaná jazykovou službou. Chcete-li však použít s MEF, je nutné stále propojit s typem obsahu.

Požadavky

od Visual Studio 2015 nenainstalujete Visual Studio SDK ze služby stažení softwaru. v Visual Studio instalaci je zahrnutý jako volitelná funkce. Sadu VS SDK můžete také nainstalovat později. další informace najdete v tématu instalace sady Visual Studio SDK.

Vytvořit projekt MEF

  1. Vytvoří projekt VSIX v jazyce C#. (v dialogovém okně nový Project vyberte Visual C#/rozšiřitelnost a pak Project VSIX.) Pojmenujte řešení ContentTypeTest .

  2. v souboru source. extension. vsixmanifest klikněte na kartu assets (prostředky ) a nastavte pole typ na hodnotu Microsoft. VisualStudio. MefComponent, zdrojové pole na projekt v aktuálním řešení a pole Project na název projektu.

Definovat typ obsahu

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

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

    1. System. ComponentModel. složení

    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 ContentTypeDefinition název "HID" a deklarujte jeho základní definici jako "text".

    internal static class FileAndContentTypeDefinitions
    {
        [Export]
        [Name("hid")]
        [BaseDefinition("text")]
        internal static ContentTypeDefinition hidingContentTypeDefinition;
    }
    
  • Chcete-li mapovat tento typ obsahu na příponu názvu souboru, exportujte soubor s FileExtensionToContentTypeDefinition příponou . HID a typem 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í glyfu marže popsané v tématu Návod: vytvoření glyfu marže.

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

  3. Při exportování třídy rozšíření přidejte ContentTypeAttribute do ní typ "HID".

    [Export]
    [ContentType("hid")]
    

Viz také