다음을 통해 공유


서비스 기초

서비스를 두 개의 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를 사용 합니다.을 참조하십시오.

참고 항목

참조

캐스팅 및 형식 변환(C# 프로그래밍 가이드)

캐스팅

개념

사용 가능한 서비스 목록

기타 리소스

서비스