Condividi tramite


procedura dettagliata: Collegare un tipo di contenuto a un'estensione di file

È possibile definire diventi proprietaria del tipo di contenuto e associare un'estensione di file a utilizzare le estensioni del Framework di estensibilità gestite (MEF) editor. In alcuni casi, l'estensione di file è già stata definita da un servizio di linguaggio; tuttavia, per utilizzarla con il framework MEF è necessario collegarla a un tipo di contenuto.

Per eseguire questa procedura dettagliata, è necessario installare Visual Studio 2010 SDK. Per ulteriori informazioni, vedere Cenni preliminari sull'estensione di Visual Studio. Per ulteriori informazioni su come scaricare Visual Studio SDK, vedere Centro per sviluppatori di estensibilità di Visual Studio il sito Web MSDN.

Creare un progetto MEF

Per creare un progetto MEF

  1. Creare un progetto c# o classificatore di Visual Basic Editor. Assegnare alla soluzione ContentTypeTest.

  2. Aprire il file source.extension.vsixmanifest nell'editor del manifesto VSIX.

  3. Assicurarsi che la direzione di Content contenga un tipo di contenuto componente MEF e che il percorso è impostato su ContentTypeTest.dll.

  4. salvare e chiudere source.extension.vsixmanifest.

  5. Eliminare i file di classe esistenti.

Definizione del tipo di contenuto

Per definire un tipo di contenuto

  1. Aggiungere il file di classe e denominarlo FileAndContentTypes.

  2. Aggiungere le seguenti direttive di using (istruzioni diImports in Visual Basic).

    Imports System.ComponentModel.Composition
    Imports Microsoft.VisualStudio.Text.Classification
    Imports Microsoft.VisualStudio.Utilities
    
    using System.ComponentModel.Composition;
    using Microsoft.VisualStudio.Text.Classification;
    using Microsoft.VisualStudio.Utilities;
    
  3. Dichiarare una classe statica (il modulo in Visual Basic) contenente le definizioni.

    Friend Module FileAndContentTypeDefinitions
    
    End Module
    
    internal static class FileAndContentTypeDefinitions
    
  4. In questa classe, esportare ContentTypeDefinition denominato “è nascosto„ e dichiarano la relativa definizione di base per essere “testo„.

    <Export(), Name("hid"), BaseDefinition("text")>
    Friend myDefinition1 As ContentTypeDefinition
    
    [Export]
    [Name("hid")]
    [BaseDefinition("text")]
    internal static ContentTypeDefinition hidingContentTypeDefinition;
    

Associare un'estensione di file a un tipo di contenuto

Per associare un'estensione di file a un tipo di contenuto

  • Per eseguire il mapping di questo tipo di contenuto a un'estensione di file, esportare FileExtensionToContentTypeDefinition con estensione “.hid„ e il tipo di contenuto “è nascosto„.

    <Export(), FileExtension(".hid"), ContentType("hid")>
    Friend myDefinition2 As FileExtensionToContentTypeDefinition
    
    [Export]
    [FileExtension(".hid")]
    [ContentType("hid")]
    internal static FileExtensionToContentTypeDefinition hiddenFileExtensionDefinition;
    

Aggiunta del tipo di contenuto a un'esportazione dell'editor

Per aggiungere il tipo di contenuto a un'estensione dell'editor

  1. Creare un'estensione dell'editor.

  2. Quando la si esporta, aggiungere ContentTypeAttribute di tipo “è nascosto„ in.

    <Export(), ContentType("hid")>
    Friend myDefinition3 As FileExtensionToContentTypeDefinition
    
    [Export]
    [ContentType("hid")]
    

Vedere anche

Concetti

Punti di estensione di editor