mantenga Essentials
un servicio es un contrato entre dos VSPackages. Un VSPackage proporciona un conjunto de interfaces que otro Paquete utiliza. Visual Studio es una colección de VSPackages que proporciona servicios al otro VSPackages.
Por ejemplo, puede utilizar el servicio de SVsActivityLog para obtener una interfaz de IVsActivityLog, que puede utilizar para escribir en el registro de actividades. Para obtener más información, vea Cómo: utilice el registro de actividad.
Los servicios no tienen ningún detectabilidad. Por consiguiente, debe conocer el identificador del servicio (SID) de un servicio que desea utilizar, y debe saber que las interfaces que proporcionan. Documentación de referencia del servicio proporciona esta información.
VSPackages que proporciona servicios se llama a los proveedores de servicios.
Los servicios que se proporcionan al otro VSPackages se denominan los servicios globales.
Los servicios que solo están disponibles al Paquete que se implementan, o a cualquier objeto crea, se denominan los servicios locales.
Los servicios se cargan a petición, es decir, el proveedor de servicios se carga cuando el servicio que proporciona es solicitado por otro paquete VSPackage.
Para admitir la carga a petición, un proveedor de servicios registra sus servicios globales con Visual Studio. Para obtener más información, vea registrar servicios.
Después de que obtiene un servicio, un uso QueryInterface (código no administrado) o un marco (código administrado) para obtener la interfaz deseada, por ejemplo:
TryCast(GetService(GetType(SVsActivityLog)), IVsActivityLog)
GetService(typeof(SVsActivityLog)) as IVsActivityLog;
El código administrado hace referencia a un servicio del tipo, mientras que el código no administrado hace referencia a un servicio por su GUID.
Cuando Visual Studio carga un VSPackage, pasa un proveedor de servicios al Paquete para conceder acceso de VSPackage a los servicios globales. Esto se conoce como “localización” el paquete VSPackage.
VSPackages puede ser proveedores de servicios para los objetos que crea. Por ejemplo, un formulario puede enviar una solicitud de un servicio de color en el cuadro, que pasan la solicitud a Visual Studio.
Los objetos administrados que están perfectamente, o no se encuentran en absoluto, pueden llamar GetGlobalService para el acceso directo a los servicios globales. Para obtener más información, vea Cómo: uso GetGlobalService.
Vea también
Referencia
Conversiones de tipos (Guía de programación de C#)
Conceptos
Lista de Servicios disponibles