연습: 확장 편집기에서 DTE 개체 액세스
DTE 개체에 액세스 하 여 여러 가지 방법으로 Visual Studio 자동화할 수 있습니다. 하면 DTE 개체는 Visual Studio (또는 progID) 프로그래밍 식별자를 참조 하 여 추가 기능을 얻을 수 있습니다. 자세한 내용은 자동화 어셈블리 및 DTE2 개체 참조를 참조하십시오. 일반적에 하면 DTE 개체를 호출 하 여 얻을 수 있습니다의 GetService 메서드로 DTE 개체의 형식입니다. 자세한 내용은 연습: 확장 VSPackages 자동화를 사용 하 여 관리를 참조하십시오. 확장성 프레임 워크 (MEF) 관리 확장을 가져올 수 있습니다 SVsServiceProvider 다음 호출에서 GetService 메서드를 사용 하는 유형의 DTE.
사전 요구 사항
이 연습을 완료 하려면 설치 해야 해당 Visual Studio 2010 SDK. Visual Studio SDK 및 다운로드 방법에 대 한 자세한 내용은 Visual Studio 확장성 개발자 센터 MSDN 웹 사이트에서.
DTE 개체 가져오기
Serviceprovider에서 DTE 개체를 가져오려면
C# 또는 Visual Basic 편집기 분류자 프로젝트를 만듭니다. 솔루션 이름 DTETest.
다음 프로젝트에 어셈블리 참조를 추가 합니다. \Visual Studio 설치 folder\common7\ide\publicassemblies\를 탐색 해야 합니다.
EnvDTE.dll
EnvDTE80.dll
Microsoft.VisualStudio.Shell.Immutable.10.0
DTETest 파일을 이동 하 고 다음 추가 using 지시문 (Imports Visual Basic 문에서).
Imports EnvDTE Imports EnvDTE80 Imports Microsoft.VisualStudio.Shell
using EnvDTE; using EnvDTE80; using Microsoft.VisualStudio.Shell;
에 DTETestProvider 클래스, 가져오기의 SVsServiceProvider.
<Import()> Private ServiceProvider As SVsServiceProvider = Nothing
[Import] internal SVsServiceProvider ServiceProvider = null;
에 GetClassifier() 메서드를 다음 코드를 추가 합니다.
Dim dte As DTE dte = CType(ServiceProvider.GetService(GetType(DTE)), DTE)
DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));
사용 하는 경우는 DTE2 인터페이스에서 DTE 개체를 캐스팅할 수 있습니다.