Freigeben über


Gewusst wie: Ruft einen Dienst vom DTE-Objekt ab

Ein Dienst kann von jedem Programm abgerufen werden, das über Visual Studio Zugriff auf das DTEClass-Objekt verfügt. Beispielsweise können Sie den Assistenten aus einem Dienst SVsActivityLog vom DTE-Objekt zugreifen. Sie können diesen Dienst verwenden, um zum Aktivitätsprotokoll zu schreiben. Weitere Informationen finden Sie unter Gewusst wie: Verwenden Sie das Aktivitätsprotokoll.

Das DTE-Objekt implementiert IServiceProvider, die Sie verwenden können, um für einen Dienst aus verwaltetem Code abfragen, indem Sie GetServiceverwenden.

Um einen Dienst vom DTE-Objekt abrufen

  • Der folgende Code erstellt ServiceProvider vom DTE-Objekt und ruft GetService mit dem Typ des SVsActivityLog Dienstes an. Der Dienst wird auf die Schnittstelle umgewandelt IVsActivityLog, die verwendet wird, um einen Eintrag im Aktivitätsprotokoll zu schreiben. Weitere Informationen abou, wie zum Aktivitätsprotokoll finden Sie unter schreibt Gewusst wie: Verwenden Sie das Aktivitätsprotokoll.

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

Siehe auch

Konzepte

Dienst-Grundlagen

Weitere Ressourcen

Dienste