逐步解說︰將內容類型連結至副檔名
您可以使用編輯器 Managed Extensibility Framework (MEF) 擴充功能來定義自己的內容類型,並將副檔名連結至該內容類型。 在某些情況下,副檔名已經由語言服務定義。 但是,若要將它與 MEF 搭配使用,您仍須將其連結到內容類型。
建立 MEF 專案
建立 C# VXIS 專案。 (在新增專案對話框中,選取 Visual C# /擴充性,然後選取 VSIX 專案。) 命名解決方案
ContentTypeTest
。在 source.extension.vsixmanifest 檔案中,前往資產索引標籤,並將類型欄位設定至 Microsoft.VisualStudio.MefComponent、將來源欄位設定至目前方案中的專案,以及將專案欄位設定至專案的名稱。
定義內容類型
加入類別檔案,並將它命名為
FileAndContentTypes
。加入下列組件的參考:
System.ComponentModel.Composition
Microsoft.VisualStudio.Text.Logic
Microsoft.VisualStudio.CoreUtility
新增下列
using
指示詞。using System.ComponentModel.Composition; using Microsoft.VisualStudio.Text.Classification; using Microsoft.VisualStudio.Utilities;
宣告包含定義的靜態類別。
internal static class FileAndContentTypeDefinitions {. . .}
在此類別中,匯出名為「hid」的 ContentTypeDefinition,並將其基底定義宣告為「text」。
internal static class FileAndContentTypeDefinitions { [Export] [Name("hid")] [BaseDefinition("text")] internal static ContentTypeDefinition hidingContentTypeDefinition; }
將副檔名連結至內容類型
若要將此內容類型對應至副檔名,請匯出延伸為 .hid 且內容類型「hid」的 FileExtensionToContentTypeDefinition。
internal static class FileAndContentTypeDefinitions { [Export] [Name("hid")] [BaseDefinition("text")] internal static ContentTypeDefinition hidingContentTypeDefinition; [Export] [FileExtension(".hid")] [ContentType("hid")] internal static FileExtensionToContentTypeDefinition hiddenFileExtensionDefinition; }
將內容類型新增至編輯器匯出
建立編輯器擴充功能。 例如,您可以使用逐步解說:建立邊界字符中所述的邊界字符擴展。
新增您在此程序中定義的類別。
當您匯出擴充類別時,請將類型為「hid」的 ContentTypeAttribute 新增至該類別。
[Export] [ContentType("hid")]