Condividi tramite


Procedura: Ottenere un servizio dall'oggetto DTE

Un servizio può essere ottenuto da qualsiasi programma che ha accesso all' oggetto di DTEClass di automazione di Visual Studio . Ad esempio, è possibile accedere al servizio di SVsActivityLog da una procedura guidata tramite l'oggetto DTE. È possibile utilizzare questo servizio per scrivere nel log attività. Per ulteriori informazioni, vedere Procedura: utilizzare il registro attività.

L'oggetto DTE implementa IServiceProvider, che è possibile utilizzare per eseguire una query per un servizio dal codice gestito utilizzando GetService.

Per ottenere un servizio dall' oggetto DTE

  • Il codice seguente crea ServiceProvider dall' oggetto DTE e chiama GetService con il tipo del servizio di SVsActivityLog . Il servizio viene eseguito il cast dell' interfaccia IVsActivityLog, utilizzata per scrivere una voce del registro attività. Per ulteriori abou di informazioni come scrivere nel log attività, vedere Procedura: utilizzare il registro attività.

    ' Start with the DTE object, for example:  
    'DTE dte = (DTE)GetService(typeof(DTE));  
    Dim dte As DTE
    dte = CType(GetService(GetType(DTE)), DTE)
    
    Dim sp As New ServiceProvider(dte)
    Dim log As IVsActivityLog = TryCast(GetService(GetType(SVsActivityLog)), IVsActivityLog)
    If log Is Nothing Then 
        Return 
    End If 
    
    Dim hr As Integer = log.LogEntry(CType(__ACTIVITYLOG_ENTRYTYPE.ALE_INFORMATION, UInt32), Me.ToString(), String.Format(CultureInfo.CurrentCulture, "Consuming SVsActivityLog service in {0}", Me.ToString()))
    
    // Start with the DTE object, for example: 
    // DTE dte = (DTE)GetService(typeof(DTE));
    
    ServiceProvider sp = new ServiceProvider(dte);
    IVsActivityLog log =
       GetService(typeof(SVsActivityLog)) as IVsActivityLog;
    if (log == null) return;
    
    int hr = log.LogEntry(
       (UInt32)__ACTIVITYLOG_ENTRYTYPE.ALE_INFORMATION,
       this.ToString(),
       string.Format(CultureInfo.CurrentCulture,
       "Consuming SVsActivityLog service in {0}", this.ToString())
    );
    

Vedere anche

Concetti

Concetti di base del servizio

Altre risorse

servizi