다음을 통해 공유


연습: 편집기 확장에서 DTE 개체 액세스

VSPackages에서 GetService 메서드를 DTE 개체 형식과 함께 호출하여 DTE 개체를 가져올 수 있습니다. MEF(Managed Extensibility Framework) 확장에서 SVsServiceProvider를 가져온 다음, DTE 형식과 함께 GetService 메서드를 호출할 수 있습니다.

필수 조건

이 연습을 수행하려면 Visual Studio SDK를 설치해야 합니다. 자세한 내용은 Visual Studio SDK를 참조하세요.

DTE 개체 가져오기

  1. C# VSIX 프로젝트를 만들고 이름을 DTETest로 지정합니다. 편집기 분류자 항목 템플릿을 추가하고 이름을 DTETest로 지정합니다.

    자세한 내용은 편집기 항목 템플릿을 사용하여 확장 만들기를 참조하세요.

  2. 프로젝트에 다음 어셈블리 참조를 추가합니다.

    • Microsoft.VisualStudio.Shell.Framework
    • Microsoft.VisualStudio.Shell.Immutable.10.0
  3. DTETestProvider.cs 파일에서 다음 using 지시문을 추가합니다.

    using EnvDTE;
    using Microsoft.VisualStudio.Shell;
    
  4. DTETestProvider 클래스에서 SVsServiceProvider를 가져옵니다.

    [Import]
    internal SVsServiceProvider ServiceProvider = null;
    
  5. GetClassifier() 메서드에서 return 문 앞에 다음 코드를 추가합니다.

    ThreadHelper.ThrowIfNotOnUIThread();
    DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));
    

참고 항목