Como: obter um serviço do objeto DTE
Um serviço pode ser obtido em qualquer programa que tenha acesso a Visual Studio automação DTEClass objeto. Por exemplo, você pode acessar o SVsActivityLog serviço de um assistente através do objeto DTE. Você pode usar esse serviço para gravar no log de atividade. Para mais informações, consulte Como: usar o Log de atividade.
O objeto DTE implementa IServiceProvider, que você pode usar a consulta para um serviço do código gerenciado usando GetService.
Para obter um serviço do objeto DTE
O código a seguir cria um ServiceProvider do objeto DTE e chamadas GetService com o tipo da SVsActivityLog service. O serviço é um conversão para a interface IVsActivityLog, que é usado para gravar uma entrada no registro de atividades. Para obter mais abou de informações sobre como gravar no log de atividade, consulte Como: usar o Log de atividade.
' 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()) );