연습: 편집기 확장에서 DTE 개체 액세스
VSPackages에서 GetService 메서드를 DTE 개체 형식과 함께 호출하여 DTE 개체를 가져올 수 있습니다. MEF(Managed Extensibility Framework) 확장에서 SVsServiceProvider를 가져온 다음, DTE 형식과 함께 GetService 메서드를 호출할 수 있습니다.
필수 조건
이 연습을 수행하려면 Visual Studio SDK를 설치해야 합니다. 자세한 내용은 Visual Studio SDK를 참조하세요.
DTE 개체 가져오기
C# VSIX 프로젝트를 만들고 이름을 DTETest로 지정합니다. 편집기 분류자 항목 템플릿을 추가하고 이름을 DTETest로 지정합니다.
자세한 내용은 편집기 항목 템플릿을 사용하여 확장 만들기를 참조하세요.
프로젝트에 다음 어셈블리 참조를 추가합니다.
- Microsoft.VisualStudio.Shell.Framework
- Microsoft.VisualStudio.Shell.Immutable.10.0
DTETestProvider.cs 파일에서 다음
using
지시문을 추가합니다.using EnvDTE; using Microsoft.VisualStudio.Shell;
DTETestProvider
클래스에서 SVsServiceProvider를 가져옵니다.[Import] internal SVsServiceProvider ServiceProvider = null;
GetClassifier()
메서드에서return
문 앞에 다음 코드를 추가합니다.ThreadHelper.ThrowIfNotOnUIThread(); DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));