다음을 통해 공유


방법: 서비스에서 DTE 개체 가져오기

서비스에 액세스할 수 있는 모든 프로그램에서 얻을 수 있는 Visual Studio 자동화 DTEClass 개체입니다. 예를 들어, 액세스할 수는 SVsActivityLog DTE 개체를 통해 마법사에서 서비스 합니다. 이 서비스 활동 로그에 쓸 수 있습니다. 자세한 내용은 방법: 작업 로그를 사용 하 여를 참조하십시오.

DTE 개체가 구현 하는 IServiceProvider를 사용할 수 있는 서비스에 대 한 쿼리를 사용 하 여 관리 되는 코드에서를 GetService.

서비스에서 DTE 개체를 가져오려면

  • 만드는 다음 코드를 ServiceProvider DTE 개체 및 호출에서 GetService 의 형식으로 SVsActivityLog 서비스. 서비스 인터페이스로 캐스팅 된 IVsActivityLog, 활동 로그에 항목을 기록 하려면 사용 됩니다. 자세한 정보 사항에 대 한 내용은 활동 로그에 기록 하는 방법: 작업 로그를 사용 하 여.

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

참고 항목

개념

서비스 기초

기타 리소스

서비스