방법: Getglobalservice를 사용 합니다.
도구 창에서 서비스를 준비 하거나 원하는 서비스에 대 한 알 수 없는 서비스 공급자와 배치 된 그렇지 아직 배치 된 컨테이너를 제어 하는 경우가 있습니다. 예를 들어 컨트롤 내에서 작업 로그를 작성 하는 좋습니다. 이러한 문제 및 기타 시나리오에 대 한 자세한 내용은 참조 하십시오. 방법: 서비스 문제 해결.
대부분의 얻을 수 있습니다 Visual Studio 서비스를 호출 하는 정적 GetGlobalService 방법입니다.
GetGlobalService파생 된 Vspackage를 처음으로 초기화 되는 캐시 된 서비스 공급자를 사용 하 여 Package 배치 됩니다. 이 조건을 충족 되 그렇지는 null 서비스에 대 한 준비를 보장 해야 합니다.
다행히도, GetGlobalService 대부분의 작동 합니다.
있는 VSPackage 다른 Vspackage만 하 라고 하는 서비스를 제공 하는 경우 서비스를 요청 하 여 VSPackage 서비스 로드를 제공 하 여 VSPackage 전에 사이 팅 되어.
가 있는 VSPackage 도구 창을 만들면 도구 창을 만들기 전에 있는 VSPackage 사이 팅 되어 있습니다.
컨트롤 컨테이너 만들어지기 전에 컨트롤 컨테이너는 Vspackage로 만든 도구 창에서 호스팅되는 경우에 VSPackage 사이 팅 되어.
서비스에서 도구 창 또는 컨트롤 컨테이너에서 얻을 수
이 코드에는 생성자, 도구 창, 또는 컨트롤 컨테이너에 삽입 합니다.
Dim log As IVsActivityLog = TryCast(Package.GetGlobalService(GetType(SVsActivityLog)), IVsActivityLog) If log Is Nothing Then Return End If
IVsActivityLog log = Package.GetGlobalService(typeof(SVsActivityLog)) as IVsActivityLog; if (log == null) return;
이 코드 SVsActivityLog 서비스를 얻고 캐스팅에 IVsActivityLog 활동 로그에 기록 하는 데 사용 하는 인터페이스입니다. 예제를 보려면 방법: 작업 로그를 사용 하 여을 참조하십시오.