서비스 기초
서비스를 두 개의 VSPackages 사이의 계약입니다. 하나의 VSPackage 특정 인터페이스 집합을 사용 하는 다른 VSPackage 제공 합니다. Visual Studio자체가 다른 Vspackages에 서비스를 제공 하는 Vspackages의 컬렉션입니다.
예를 들어, 활동 로그에 쓰는 데 사용할 수 있는 IVsActivityLog 인터페이스를 얻을 수 SVsActivityLog 서비스를 사용할 수 있습니다. 자세한 내용은 방법: 작업 로그를 사용 하 여를 참조하십시오.
서비스 없음 검색 기능에 있습니다. 따라서를 사용 하려면 서비스의 서비스 식별자 (SID)를 알고 있어야 하며이 제공 하는 인터페이스를 알아야 합니다. 이 정보 서비스에 대 한 참조 설명서를 제공합니다.
서비스를 제공 하는 VSPackages 서비스 공급자 라고 합니다.
다른 Vspackages에 제공 하는 서비스는 글로벌 서비스 라고 합니다.
구현 Vspackage만 하거나 작성 하는 개체에 사용할 수 있는 서비스는 로컬 서비스 라고 합니다.
서비스 요청 시 로드 된, 다른 VSPackage 여이 제공 하는 서비스를 요청 하면, 서비스 공급자를 로드 합니다.
요청 시 로드를 지원 하기 위해 해당 글로벌 서비스와 서비스 공급자 등록 Visual Studio. 자세한 내용은 서비스 등록를 참조하십시오.
사용 하는 서비스를 받는 후에 QueryInterface (비관리 코드) 또는 예를 들어 원하는 인터페이스를 가져올 수 캐스팅 (관리 코드):
TryCast(GetService(GetType(SVsActivityLog)), IVsActivityLog)
GetService(typeof(SVsActivityLog)) as IVsActivityLog;
서비스 GUID에서 비관리 코드를 참조 하는 반면 서비스에서 해당 형식 관리 되는 코드를 참조 합니다.
때 Visual Studio a VSPackage 로드 되 면이 전달 서비스 공급자가 있는 VSPackage 전역 서비스에 액세스할 수 있는 Vspackage를 합니다. 이를 "해당 VSPackage 사이팅에" 라고 합니다.
VSPackages 서비스 공급자가이 개체에 대 한 수 있습니다. 예를 들어, 폼 색 서비스에 대 한 요청에 요청을 전달할 수 해당 프레임을 보내게 될 수 있습니다 Visual Studio.
많이 중첩 된 또는 전혀 배치 되는 관리 되는 개체 수를 호출 GetGlobalService 글로벌 서비스를 합니다. 자세한 내용은 방법: Getglobalservice를 사용 합니다.을 참조하십시오.