共用方式為


服務的基本資訊

服務是兩個 VSPackages 之間的合約。 一個 VSPackage 提供一組特定的另一台 VSPackage,若要使用的介面。 Visual Studio本身就是一群提供服務給其他 VSPackages 的 VSPackages。

比方說,您可以使用 SVsActivityLog 服務,以取得 IVsActivityLog 介面,您可以用來寫入活動的記錄檔。 如需詳細資訊,請參閱 How to: 使用 [活動記錄

服務有沒有發現。 因此,您必須知道您想要使用,服務的服務識別項 (SID),而且您必須知道它所提供的介面。 服務的參考文件提供此資訊。

  • 提供服務的 VSPackages 會呼叫服務提供者。

  • 提供給其他 VSPackages 的服務稱為通用的服務。

  • 只提供給實作,VSPackage 或,它會建立任何物件,稱為本機服務的服務。

  • 服務會視需要載入,它提供的服務要求由另一個 VSPackage 時,也就是載入服務提供者。

  • 若要支援視需要載入,服務提供者註冊其全球的服務與Visual Studio。 如需詳細資訊,請參閱 註冊服務

  • 取得服務之後,使用QueryInterface (不受管理的程式碼) 或轉型 (managed 程式碼),以取得所要的介面,例如:

    TryCast(GetService(GetType(SVsActivityLog)), IVsActivityLog)
    
    GetService(typeof(SVsActivityLog)) as IVsActivityLog;
    
  • Managed 程式碼是指服務透過其型別,而不受管理的程式碼指的是由其 GUID 的服務。

  • 當Visual Studio VSPackage 的負載,傳遞服務提供者至 VSPackage,以便讓 VSPackage 存取通用的服務。 這被指 「 設置"VSPackage。

  • VSPackages 可以是服務提供者所建立的物件。 例如,表單可能會要求傳送到色彩服務它的框架,可能會傳遞要求到Visual Studio。

  • 管理的物件的深層巢狀結構,或是未設置,可能會呼叫GetGlobalService全球服務的直接存取。 如需詳細資訊,請參閱 How to: 使用 GetGlobalService

請參閱

參考

轉型和類型轉換 (C# 程式設計手冊)

轉型

概念

可用的服務清單

其他資源

服務