다음을 통해 공유


연습: 확장 편집기에서 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 개체를 가져오려면

  1. C# 또는 Visual Basic 편집기 분류자 프로젝트를 만듭니다. 솔루션 이름 DTETest.

  2. 다음 프로젝트에 어셈블리 참조를 추가 합니다. \Visual Studio 설치 folder\common7\ide\publicassemblies\를 탐색 해야 합니다.

    • EnvDTE.dll

    • EnvDTE80.dll

    • Microsoft.VisualStudio.Shell.Immutable.10.0

  3. DTETest 파일을 이동 하 고 다음 추가 using 지시문 (Imports Visual Basic 문에서).

    Imports EnvDTE
    Imports EnvDTE80
    Imports Microsoft.VisualStudio.Shell
    
    using EnvDTE;
    using EnvDTE80;
    using Microsoft.VisualStudio.Shell;
    
  4. DTETestProvider 클래스, 가져오기의 SVsServiceProvider.

    <Import()>
    Private ServiceProvider As SVsServiceProvider = Nothing
    
    [Import]
    internal SVsServiceProvider ServiceProvider = null;
    
  5. GetClassifier() 메서드를 다음 코드를 추가 합니다.

    Dim dte As DTE
    dte = CType(ServiceProvider.GetService(GetType(DTE)), DTE)
    
    DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));
    
  6. 사용 하는 경우는 DTE2 인터페이스에서 DTE 개체를 캐스팅할 수 있습니다.

참고 항목

개념

편집기 확장 지점