Procedura: utilizzo GetGlobalService
Talvolta può essere necessario ottenere un servizio da una finestra degli strumenti o da un contenitore di controlli che non sono stati collocati, o è stato collocati con un provider di servizi che non è al servizio desiderato. Ad esempio, potrebbe essere necessario scrivere nel log attività dall'interno di un controllo. Per ulteriori informazioni su questi e altri scenari, vedere Procedura: Risoluzione dei servizi.
È possibile ottenere la maggior parte dei servizi di Visual Studio chiamando il metodo statico di GetGlobalService .
GetGlobalService si basa su un provider di servizi memorizzato nella cache inizializzato la prima volta il package VS derivato da Package è collocato. È necessario accertarsi che questa condizione viene soddisfatta, altrimenti essere preparati per un servizio null.
Fortunatamente, il funzionamento di GetGlobalService correttamente per la maggior parte dei casi.
Se un VSPackage fornisce un servizio noto solo a un altro package VS, il package VS che richiede il servizio viene situato prima che il package VS che fornisce il servizio venga caricato.
Se una finestra degli strumenti viene creata da un package VS, il package VS è collocato prima che la finestra degli strumenti sia creato.
Se un contenitore di controlli è ospitato da una finestra degli strumenti creata da un package VS, il package VS è collocato prima che il contenitore di controlli venga creato.
Per ottenere un servizio dall'interno di una finestra degli strumenti o un contenitore di controlli
Inserire il codice nel costruttore, nella finestra degli strumenti, o nel contenitore di controlli:
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;
Questo codice ottiene un servizio di SVsActivityLog e ne viene eseguito il cast in un'interfaccia di IVsActivityLog , che può essere utilizzata per scrivere nel log attività. Per un esempio, vedere Procedura: utilizzare il registro attività.
Vedere anche
Attività
Procedura: Risoluzione dei servizi