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
Crie um projeto de C# ou Visual Basic Editor classificador. Nomeie a solução ContentTypeTest.
Abra o arquivo de source.extension.vsixmanifest no Editor de VSIX de manifesto.
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.
Salve e feche o source.extension.vsixmanifest.
Exclua os arquivos de classe existentes.
A definição do tipo de conteúdo
Para definir um tipo de conteúdo
Adicione um arquivo de classe e denomine- FileAndContentTypes.
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;
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
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
Crie uma extensão do editor.
Quando você exporta-lo, adicione um ContentTypeAttribute do tipo "hid" para ele.
<Export(), ContentType("hid")> Friend myDefinition3 As FileExtensionToContentTypeDefinition
[Export] [ContentType("hid")]