Compartilhar via


Passo a passo: Vinculação a um tipo de conteúdo a uma extensão de nome de arquivo

Você pode definir seu próprio tipo de conteúdo e vincular a uma extensão de nome de arquivo a ele usando as extensões do editor Managed Extensibility Framework (MEF). Em alguns casos, a extensão de nome de arquivo já foi definida por um serviço de linguagem; No entanto, para usá-lo com MEF você ainda deve vinculá-lo a um tipo de conteúdo.

Para seguir este passo a passo, você deve instalar o Visual Studio 2010 SDK. Para obter mais informações, consulte Ampliando a visão geral de Visual Studio. Para descobrir como fazer o download do SDK do Visual Studio, consulte Visual Studio extensibilidade Developer Center no site do MSDN.

Criando um projeto MEF

Para criar um projeto MEF

  1. Crie um projeto de C# ou Visual Basic Editor classificador. Nomeie a solução ContentTypeTest.

  2. Abra o arquivo de source.extension.vsixmanifest no Editor de VSIX de manifesto.

  3. Certifique-se de que o Content título contém um tipo de conteúdo do componente MEF e que o caminho é definido como ContentTypeTest.dll.

  4. Salve e feche o source.extension.vsixmanifest.

  5. Exclua os arquivos de classe existentes.

A definição do tipo de conteúdo

Para definir um tipo de conteúdo

  1. Adicione um arquivo de classe e denomine- FileAndContentTypes.

  2. Adicione o seguinte using diretivas (Imports as instruções em 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. Declare uma classe estática (módulo em Visual Basic) que contém as definições.

    Friend Module FileAndContentTypeDefinitions
    
    End Module
    
    internal static class FileAndContentTypeDefinitions
    
  4. Nesta classe, exportar um ContentTypeDefinition chamado "ocultado" e declarar sua definição básica seja "texto".

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

Vinculando a uma extensão de nome de arquivo a um tipo de conteúdo

Para vincular uma extensão de nome de arquivo a um tipo de conteúdo

  • Para mapear este tipo de conteúdo para uma extensão de nome de arquivo, exportar um FileExtensionToContentTypeDefinition que tem a extensão ".hid" e o tipo de conteúdo "hid".

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

Adicionando o tipo de conteúdo a uma exportação de Editor

Para adicionar o tipo de conteúdo a uma extensão de editor

  1. Crie uma extensão do editor.

  2. Quando você exporta-lo, adicione um ContentTypeAttribute do tipo "hid" para ele.

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

Consulte também

Conceitos

Pontos de extensão do Editor