연습: 콘텐츠 형식의 파일 이름 확장명에 연결
고유한 콘텐츠 형식을 정의 하 고 확장성 프레임 워크 (MEF) 관리 되는 확장 편집기를 사용 하 여 파일 이름 확장명 연결 수 있습니다. 경우에 따라 파일 이름 확장명이 언어 서비스에 이미 정의 되어 있습니다. 그럼에도 불구 하 고 MEF를 사용 하 여 여전히 콘텐츠 형식에 링크 시켜야 합니다.
이 연습을 수행 하려면 설치 해야 해당 Visual Studio 2010 SDK입니다. 자세한 내용은 Visual Studio 개요를 확장합니다.. Visual Studio SDK를 다운로드 하는 방법를 참조 하십시오. Visual Studio 확장성 개발자 센터 MSDN 웹 사이트에서.
MEF 프로젝트 만들기
MEF 프로젝트를 만들려면
C# 또는 Visual Basic 편집기 분류자 프로젝트를 만듭니다. 솔루션의 이름을 ContentTypeTest.
VSIX 매니페스트 편집기에서 source.extension.vsixmanifest 파일을 엽니다.
있는지 확인은 Content 머리글 포함 MEF 구성 요소 콘텐츠 형식 및 경로 Contenttypetest.dll으로 설정 됩니다.
저장 하 고 source.extension.vsixmanifest를 닫습니다.
기존 클래스 파일을 삭제 합니다.
콘텐츠 형식 정의
콘텐츠 형식을 정의 하려면
클래스 파일을 추가 하 고 이름을 FileAndContentTypes.
다음 추가 using 지시문 (Imports 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;
정의 포함 하는 정적 클래스에서 Visual Basic (모듈)를 선언 합니다.
Friend Module FileAndContentTypeDefinitions End Module
internal static class FileAndContentTypeDefinitions
이 클래스에서 내보내기는 ContentTypeDefinition "숨긴" 이름을 지정 하 고 "텍스트"으로 해당 기본 정의 선언 합니다.
<Export(), Name("hid"), BaseDefinition("text")> Friend myDefinition1 As ContentTypeDefinition
[Export] [Name("hid")] [BaseDefinition("text")] internal static ContentTypeDefinition hidingContentTypeDefinition;
콘텐츠 형식에 연결 하는 파일 이름 확장명
콘텐츠 형식에 파일 확장명을 연결 하려면
이 콘텐츠 형식의 파일 이름 확장명을 매핑하려면 내보내기는 FileExtensionToContentTypeDefinition ".hid" 확장명 가진 및 콘텐츠 형식을 "숨긴".
<Export(), FileExtension(".hid"), ContentType("hid")> Friend myDefinition2 As FileExtensionToContentTypeDefinition
[Export] [FileExtension(".hid")] [ContentType("hid")] internal static FileExtensionToContentTypeDefinition hiddenFileExtensionDefinition;
편집기로 내보낼 콘텐츠 형식 추가
편집기 확장에 콘텐츠 형식을 추가 하려면
확장을 편집기를 만듭니다.
내보낼 때 추가 된 ContentTypeAttribute "을 숨긴" 형식.
<Export(), ContentType("hid")> Friend myDefinition3 As FileExtensionToContentTypeDefinition
[Export] [ContentType("hid")]