Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

Walkthrough: Linking a Content Type to a File Name Extension

You can define your own content type and link a file name extension to it by using editor Managed Extensibility Framework (MEF) extensions. In some cases, the file name extension has already been defined by a language service; nevertheless, to use it with MEF you still must link it to a content type.

To follow this walkthrough, you must install the Visual Studio 2013 SDK. For more information, see Visual Studio Software Development Kit (SDK).

To create a MEF project

  1. Create a C# or Visual Basic Editor Classifier project. Name the solution ContentTypeTest.

  2. Open the source.extension.vsixmanifest file in the VSIX Manifest Editor.

  3. Make sure that the Assets tab contains a MEF Component content type and that Project is set to the name of the project.

  4. Save and close source.extension.vsixmanifest.

  5. Delete the existing class files.

To define a content type

  1. Add a class file and name it FileAndContentTypes.

  2. Add the following using directives (Imports statements in Visual Basic).

    using System.ComponentModel.Composition;
    using Microsoft.VisualStudio.Text.Classification;
    using Microsoft.VisualStudio.Utilities;
    
  3. Declare a static class (Module in Visual Basic) that contains the definitions.

    internal static class FileAndContentTypeDefinitions
    
  4. In this class, export a ContentTypeDefinition named "hid" and declare its base definition to be "text".

    [Export]
    [Name("hid")]
    [BaseDefinition("text")]
    internal static ContentTypeDefinition hidingContentTypeDefinition;
    

To link a file name extension to a content type

  • To map this content type to a file name extension, export a FileExtensionToContentTypeDefinition that has the extension ".hid" and the content type "hid".

    [Export]
    [FileExtension(".hid")]
    [ContentType("hid")]
    internal static FileExtensionToContentTypeDefinition hiddenFileExtensionDefinition;
    

To add the content type to an editor extension

  1. Create an editor extension. For more information about creating editor extensions, see Getting Started with Editor Extensions.

  2. When you export it, add a ContentTypeAttribute of type "hid" to it.

    [Export]
    [ContentType("hid")]
    
Show:
© 2015 Microsoft