Compartilhar via


Como: Responder a eventos de referências da Web (Visual Basic)

Os eventos de ambiente definidos no VSLangProj e VSLangProj80 são específicas para Visual C#, Visual Basic, e Visual J# projetos. VSLangProjWebReferencesEvents é um novo tipo de Visual Studio 2005. Ele é disparado quando uma referência da Web é adicionada ou removida de um Visual Basic, Visual C#, ou Visual J# projeto, ou quando as propriedades de uma referência da Web são modificadas em um Visual Basic, Visual C#, ou Visual J# projeto.

Este exemplo usa Visual Basic para conectar-se evento-manipulação de métodos para um projeto específico usando o VSLangProjWebReferencesEvents propriedade.

Observação:

As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritas na Ajuda, dependendo das configurações ativas ou configurações de edição.Esses procedimentos foram desenvolvidos com o Geral Development Settings ativo.Para alterar as configurações, escolher Importar e exportar configurações on the Ferramentas menu.Para obter mais informações, consulte Configurações do Visual Studio.

Para manipular eventos relacionados às referências da Web usando o Visual Basic

  1. Criar um Visual Studio projeto suplemento em Visual Basic.

  2. Sobre o Projeto menu, clicar Adicionar referência, clicar no NET guia, selecionar a primeira VSLangProj e VSLangProj80 e clicar OK.

  3. Add Imports VSLangProj e Imports VSLangProj80 para a parte superior do arquivo conectar.vb.

  4. Na classe conectar, inicializar uma variável para manipular o VSLangProjWebReferencesEvents objeto.

    Public Class Connect
        Implements IDTExtensibility2
        Dim _applicationObject As DTE2
        Dim _addInInstance As AddIn
        Public WithEvents webRefEvents As _    VSLangProj80.VSLangProjWebReferencesEvents
    

    No exemplo, a variável é denominada webRefEvents.

    Outros objetos no modelo de automação estão relacionadas a outros tipos de eventos que são específicos para o projeto.Por exemplo, ImportsEvents é disparado quando uma importação é adicionada ou removida de um Imports coleção. BuildManagerEvents aplica a eventos relacionados a assemblies temporários criados a partir de saídas de ferramentas personalizadas. Para obter mais informações sobre o BuildManager objeto, consulte Introdução ao objeto BuildManager. Para obter uma lista completa dos eventos que são específicas para tipos de projetos, consulte Objetos de evento (específicas para tipos de projetos). Para obter uma lista de eventos de automação Geral, consulte Objetos de eventos de automação.

  5. Adicione a seguinte telefonar de método para o método OnConnection.

    Public Sub OnConnection(ByVal application As Object, _
     ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, _
     ByRef custom As Array) Implements IDTExtensibility2.OnConnection
        _applicationObject = CType(application, DTE2)
        _addInInstance = CType(addInInst, AddIn)
        WebReferenceEventsSample(_applicationObject)
    End Sub
    
  6. Adicione a declaração de método WebReferenceEventsSample diretamente abaixo o método OnConnection.

    Sub WebReferenceEventsSample(ByVal dte As DTE2)
    
    End Sub
    
  7. Adicione as seguintes declarações na parte superior do método WebReferenceEventsSample.

    Dim soln As Solution2 = CType(_applicationObject.Solution, Solution2)
    Dim proj As Project
    Dim vsproj As VSProject2
    Dim webServiceRef As String
    proj = soln.Projects.Item(1)
    

    A declaração proj = soln.Projects.Item(1) requer que seja em aberto em um projeto a Visual Studio ambiente de desenvolvimento integrado (IDE) ao executar este exemplo. Em particular, o projeto deve ser um Visual Basic, Visual C#, ou Visual J# projeto porque o VSLangProjWebReferencesEvents objeto é específico para esses tipos de projeto.

  8. Converter o projeto para um VSProject2 objeto, adicionando o seguinte código ao método WebReferenceEventsSample.

    ' Cast the project to a VSProject2.
    vsproj = CType(proj.Object, VSProject2)
    
  9. Também no método WebReferenceEventsSample, recupera os objetos de eventos do modelo de automação.

    webRefEvents = vsproj.Events2.VSLangProjWebReferencesEvents
    
  10. Conecte os manipuladores de eventos.

    AddHandler webRefEvents.OnAfterWebReferenceAdded, _
     AddressOf WebReferenceAdded
    AddHandler webRefEvents.OnBeforeWebReferenceRemoved, _
     AddressOf WebReferenceRemoved
    AddHandler webRefEvents.OnWebReferenceChanged, _
     AddressOf WebReferenceChanged
    
  11. Adicione uma referência da Web para o projeto.

    ' Create a Web references folder.
    MsgBox("Creating a Web references folder.", MsgBoxStyle.Information)
    vsproj.CreateWebReferencesFolder()
    ' Add a Web reference to the folder.
    ' Replace the "<web reference>" with an actual Web service URL.
    MsgBox("Adding a Web reference.", MsgBoxStyle.Information)
    webServiceRef = "<web reference>"
    vsproj.AddWebReference(webServiceRef)
    

    Para adicionar programaticamente uma referência de serviço Web para o projeto, você deve substituir o texto do espaço reservado, <web reference>, no código com o URL de um serviço Web real.

    Essa etapa faz com que o OnAfterWebReferenceAdded evento seja acionado quando você executa esse suplemento.

  12. Adicione procedimentos para cada evento relacionado a objeto de evento.

    Sub WebReferenceRemoved(ByVal removedRef As Object)
        MsgBox("A Web reference was removed.")
    End Sub
    Sub WebReferenceChanged(ByVal changedRef As Object)
        MsgBox("A Web reference was changed.")
    End Sub
    Sub WebReferenceAdded(ByVal addedRef As Object)
        MsgBox("A Web reference was added.")
    End Sub
    
  13. Finalmente, para pr evento Visual Studio de diminuindo a velocidade do sistema ao continuar monitorar s evento relacionados à janela depois de fechar o suplemento, desabilitar evento tratamento. In Visual Basic, isso é concluído definindo a evento manipulador Nothing.

    Public Sub OnDisconnection(ByVal RemoveMode As_
     Extensibility.ext_DisconnectMode, ByRef custom As System.Array)_
     Implements Extensibility.IDTExtensibility2.OnDisconnection
        webRefEvents = Nothing
    End Sub
    

    O código completo está listado na seção exemplo deste tópico.

  14. Para criar o suplemento, clicar Criar solução on the Compilação menu.

  15. Abra um Visual C#, Visual J#, ou Visual Basic projeto na Visual Studio ambiente de desenvolvimento integrado (IDE).

  16. Sobre o Ferramentas menu, clicar Gerenciador de suplementoe selecionar seu suplemento a partir de Gerenciador de suplemento caixa de diálogo.clicar OK para executar seu suplemento.

Para teste manipulação de eventos VSLangProjWebReferencesEvents

  1. The OnAfterWebReferenceAdded evento é acionado uma vez quando você executa o suplemento, porque o exemplo adiciona uma referência a um serviço Web por meio de programação.

  2. Para testar o OnWebReferenceChanged evento:

    • expandir o Referências da Web pasta O gerenciador de soluções.

    • selecionar serviço Web e clicar com o botão direito do mouse.

    • selecionar Propriedades menu suspenso.

    • Sobre o Propriedades janela, altere o comportamento URL de dinâmico para estático selecionando Estático from the Comportamento da URL caixa de combinação.

  3. Para testar o OnBeforeWebReferenceRemoved evento:

    • selecionar serviço Web e clicar com o botão direito do mouse.

    • selecionar Excluir menu suspenso.

Exemplo

Imports System
Imports Microsoft.VisualStudio.CommandBars
Imports Extensibility
Imports EnvDTE
Imports EnvDTE80
Imports VSLangProj
Imports VSLangProj2
Imports VSLangProj80

Public Class Connect
    Implements IDTExtensibility2
    Dim _applicationObject As DTE2
    Dim _addInInstance As AddIn
    Public WithEvents webRefEvents As _
    VSLangProj80.VSLangProjWebReferencesEvents
    Public Sub New()
    End Sub
    Public Sub OnConnection(ByVal application As Object, _
     ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object _
    , ByRef custom As Array) Implements IDTExtensibility2.OnConnection
        _applicationObject = CType(application, DTE2)
        _addInInstance = CType(addInInst, AddIn)
        WebReferenceEventsSample(_applicationObject)
    End Sub
    Sub WebReferenceEventsSample(ByVal dte As DTE2)
        Try
            Dim soln As Solution2 = CType(_applicationObject.Solution _
            , Solution2)
            Dim proj As Project
            Dim vsproj As VSProject2
            Dim webServiceRef As String
            proj = soln.Projects.Item(1)
            ' Cast the project to a VSProject2.
            vsproj = CType(proj.Object, VSProject2)
            webRefEvents = vsproj.Events2.VSLangProjWebReferencesEvents
            AddHandler webRefEvents.OnAfterWebReferenceAdded, _
            AddressOf WebReferenceAdded
            AddHandler webRefEvents.OnBeforeWebReferenceRemoved, _
            AddressOf WebReferenceRemoved
            AddHandler webRefEvents.OnWebReferenceChanged, _
            AddressOf WebReferenceChanged
            ' Create a Web references folder.
            MsgBox("Creating a Web references folder." _
            , MsgBoxStyle.Information)
            vsproj.CreateWebReferencesFolder()
            ' Add a Web reference to the folder.
            ' Replace the place holder <web reference> with
            ' a Web service URL.
            MsgBox("Adding a Web reference.", MsgBoxStyle.Information)
            webServiceRef = "<web reference>"
            vsproj.AddWebReference(webServiceRef)
        Catch ex As System.Exception
            MsgBox(ex.ToString)
        End Try
    End Sub
    Sub WebReferenceRemoved(ByVal removedRef As Object)
        MsgBox("A Web reference was removed.")
    End Sub
    Sub WebReferenceChanged(ByVal changedRef As Object)
        MsgBox("A Web reference was changed.")
    End Sub
    Sub WebReferenceAdded(ByVal addedRef As Object)
        MsgBox("A Web reference was added.")
    End Sub
    Public Sub OnDisconnection(ByVal disconnectMode As _
    ext_DisconnectMode, ByRef custom As Array) Implements _
    IDTExtensibility2.OnDisconnection
        ' Turns off Web reference event handling when the 
        ' add-in shuts down.
        webRefEvents = Nothing
    End Sub
    Public Sub OnAddInsUpdate(ByRef custom As Array) _
    Implements IDTExtensibility2.OnAddInsUpdate
    End Sub
    Public Sub OnStartupComplete(ByRef custom As Array) _
    Implements IDTExtensibility2.OnStartupComplete
    End Sub
    Public Sub OnBeginShutdown(ByRef custom As Array) _
    Implements IDTExtensibility2.OnBeginShutdown
    End Sub
End Class

Compilando o código

Para compilar este código, crie um novo Visual Studio projeto suplemento em Visual Basic e substitua o código de classe conectar com o código de exemplo. Para obter informações sobre como executar um suplemento, consulte Como: Controlarar Adicionar-ins com o Adicionar - in Gerente.

Consulte também

Tarefas

Como: Responder a eventos de referências da Web (Visual translation from VPE for Csharp)

Outros recursos

Respondendo a eventos de automação

Respondendo a eventos (Visual Basic e Visual translation from VPE for Csharp projetos)