Partager via


Comment : Obtenez un service de l'objet DTE

Un service peut être obtenu à partir de n'importe quel programme qui a accès à l'objet d' DTEClass automation de Visual Studio . Par exemple, vous pouvez accéder au service d' SVsActivityLog d'un Assistant via l'objet DTE. Vous pouvez utiliser ce service pour écrire dans le journal d'activité. Pour plus d'informations, consultez Comment : Utilisez les journaux d'activité.

L'objet DTE implémente IServiceProvider, que vous pouvez utiliser pour rechercher un service de code managé à l'aide de GetService.

Pour obtenir un service de l'objet DTE

  • Le code suivant crée ServiceProvider de l'objet DTE et appelle GetService avec le type du service d' SVsActivityLog . Le service est casté à l'interface IVsActivityLog, qui est utilisée pour écrire une entrée dans les journaux d'activité. Pour plus d'abou d'informations comment écrire dans le journal de l'activité, consultez Comment : Utilisez les journaux d'activité.

    ' 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())
    );
    

Voir aussi

Concepts

service Essentials

Autres ressources

services