Przewodnik: łączenie typu zawartości z rozszerzeniem nazwy pliku
Możesz zdefiniować własny typ zawartości i połączyć z nim rozszerzenie nazwy pliku przy użyciu rozszerzeń zarządzanych przez edytor rozszerzeń (MEF). W niektórych przypadkach rozszerzenie nazwy pliku jest już zdefiniowane przez usługę językową. Jednak aby używać go z mef, nadal musisz połączyć go z typem zawartości.
Tworzenie projektu MEF
Utwórz projekt VSIX w języku C#. (W Okno dialogowe Nowy projekt , wybierz pozycję Visual C# / Rozszerzalność, a następnie projekt VSIX. Nadaj rozwiązaniu
ContentTypeTest
nazwę .W pliku source.extension.vsixmanifest przejdź do karty Zasoby i ustaw pole Typ na Microsoft.VisualStudio.MefComponent, pole Źródło na Projekt w bieżącym rozwiązaniu, a pole Project na nazwę projektu.
Definiowanie typu zawartości
Dodaj plik klasy i nadaj mu
FileAndContentTypes
nazwę .Dodaj odwołania do następujących zestawów:
System.componentmodel.composition
Microsoft.VisualStudio.Text.Logic
Microsoft.VisualStudio.CoreUtility
Dodaj następujące
using
dyrektywy.using System.ComponentModel.Composition; using Microsoft.VisualStudio.Text.Classification; using Microsoft.VisualStudio.Utilities;
Zadeklaruj klasę statyczną zawierającą definicje.
internal static class FileAndContentTypeDefinitions {. . .}
W tej klasie wyeksportuj nazwę "ukryj" i zadeklaruj swoją podstawową ContentTypeDefinition definicję jako "tekst".
internal static class FileAndContentTypeDefinitions { [Export] [Name("hid")] [BaseDefinition("text")] internal static ContentTypeDefinition hidingContentTypeDefinition; }
Łączenie rozszerzenia nazwy pliku z typem zawartości
Aby zamapować ten typ zawartości na rozszerzenie nazwy pliku, wyeksportuj FileExtensionToContentTypeDefinition rozszerzenie o rozszerzeniu hid i typ zawartości "hid ".
internal static class FileAndContentTypeDefinitions { [Export] [Name("hid")] [BaseDefinition("text")] internal static ContentTypeDefinition hidingContentTypeDefinition; [Export] [FileExtension(".hid")] [ContentType("hid")] internal static FileExtensionToContentTypeDefinition hiddenFileExtensionDefinition; }
Dodawanie typu zawartości do eksportu edytora
Utwórz rozszerzenie edytora. Na przykład można użyć rozszerzenia glyph marginesu opisanego w przewodniku: Tworzenie marginesu glyph.
Dodaj klasę zdefiniowaną w tej procedurze.
Podczas eksportowania klasy rozszerzenia dodaj ContentTypeAttribute do niej typ "ukrył".
[Export] [ContentType("hid")]