Sdílet prostřednictvím


Jak: reagovat na události webové odkazy (Visual Basic)

Prostředí události definované v VSLangProj a VSLangProj80 jsou specifické pro Visual C# a Visual Basic projekty.VSLangProjWebReferencesEventsje nový typ v Visual Studio 2005.Je aktivována, když je přidána či odebrána z webový odkaz Visual Basic nebo Visual C# projektu, nebo když jsou vlastnosti webový odkaz změněna Visual Basic nebo Visual C# projektu.

V tomto příkladu Visual Basic připojení pomocí metody zpracování události pro konkrétní projekt VSLangProjWebReferencesEvents vlastnost.

[!POZNÁMKA]

Dialogová okna a příkazy v nabídkách menu, které vidíte, se mohou lišit od těch popsaných v nápovědě, v závislosti na vašich aktivních nastaveních nebo edici.Tyto postupy byly vyvinuty s aktivní Obecné nastavení pro vývoj.Chcete-li změnit nastavení, zvolte Import and Export Settings v menu Nástroje.Další informace naleznete v tématu Nastavení aplikace Visual Studio.

Zpracování události související s odkazy na Web pomocí jazyka Visual Basic

  1. Vytvoření Visual Studio přidat projekt v Visual Basic.

  2. Na projektu nabídky, klepněte na tlačítko Přidat odkaz na, klepněte .NET kartě vyberte první VSLangProj a VSLangProj80 a klepněte na tlačítko OK.

  3. Přidat Imports VSLangProj a Imports VSLangProj80 na začátek souboru Connect.vb.

  4. Ve třídě připojit inicializovat proměnné pro zpracování VSLangProjWebReferencesEvents objektu.

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

    V tomto příkladu je název proměnné webRefEvents.

    Jiné objekty automatizace modelu se vztahují na jiné typy událostí, které jsou specifické pro projekt.Například ImportsEvents je aktivována při importu je přidána či odebrána z Imports kolekce.BuildManagerEventsse vztahuje na události týkající se dočasného sestavení z výstupů vlastní nástroje.Další informace o BuildManager objekt, viz Úvod do objektu Správce BuildManager.Úplný seznam událostí, které jsou specifické pro typy projektů, viz Objekty událostí (specifické typy projektů).Seznam Obecná automatické události naleznete v tématu Automatizace objekty událostí.

  5. Přidáte následující způsob volání metody 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. Přidáte deklarace metody WebReferenceEventsSample přímo pod metodu OnConnection.

    Sub WebReferenceEventsSample(ByVal dte As DTE2)
    
    End Sub
    
  7. Přidejte následující prohlášení horní metodu 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)
    

    Prohlášení proj = soln.Projects.Item(1) vyžaduje, je otevřen v projektu Visual Studio integrované vývojové prostředí (IDE) při spuštění v tomto příkladu.Projekt musí být zejména Visual Basic nebo Visual C# projektu, protože VSLangProjWebReferencesEvents objekt je specifický pro tyto typy projektů.

  8. Odevzdaných na projektu VSProject2 přidáním následujícího kódu do metody WebReferenceEventsSample objektu.

    ' Cast the project to a VSProject2.
    vsproj = CType(proj.Object, VSProject2)
    
  9. V metodě WebReferenceEventsSample také načtěte objekty událostí z automatizace modelu.

    webRefEvents = vsproj.Events2.VSLangProjWebReferencesEvents
    
  10. Připojení obslužné rutiny události.

    AddHandler webRefEvents.OnAfterWebReferenceAdded, _
     AddressOf WebReferenceAdded
    AddHandler webRefEvents.OnBeforeWebReferenceRemoved, _
     AddressOf WebReferenceRemoved
    AddHandler webRefEvents.OnWebReferenceChanged, _
     AddressOf WebReferenceChanged
    
  11. Přidáte webový odkaz do projektu.

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

    Programově přidat webovou službu odkaz na projekt, je nutné nahradit zástupný text <web reference>, kód s URL aktuální webové služby.

    Tento krok způsobí OnAfterWebReferenceAdded událostí na oheň, spustíte-li tento doplněk.

  12. Přidáte postupy pro každé události týkající se objektu události.

    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. Konečně aby Visual Studio od zpomalení systému nadále sledovat události související se okno po ukončení v, zakázat zpracování událostí.V Visual Basic, to se provádí nastavením obslužné rutiny události na Nothing.

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

    Kompletní kód je uveden v příkladu v části tohoto tématu.

  14. Chcete-li vytvořit doplněk, klepněte na tlačítko Sestavit řešení na sestavení nabídce.

  15. Otevřít Visual C# nebo Visual Basic v projektu Visual Studio integrované vývojové prostředí (IDE).

  16. Na Nástroje nabídky, klepněte na tlačítko Správce doplňkůa vyberte doplněk z Správce doplňků dialogové okno.Klepněte na tlačítko OK spustit doplněk.

Testování zpracování událostí VSLangProjWebReferencesEvents

  1. OnAfterWebReferenceAdded Události dojde po při spuštění doplňku, protože v příkladu přidá odkaz na webovou službu programově.

  2. Test OnWebReferenceChanged událostí:

    • Rozbalte Odkazů na webové ve složce Aplikaci Solution Explorer.

    • Vyberte webové služby a pravým tlačítkem myši.

    • Vyberte Vlastnosti z rozevírací nabídky.

    • Na Vlastnosti okna změnit chování URL z dynamického na statické podle výběru statické z Chování URL pole se seznamem.

  3. Test OnBeforeWebReferenceRemoved událostí:

    • Vyberte webové služby a pravým tlačítkem myši.

    • Vyberte Odstranit z rozevírací nabídky.

Příklad

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

Probíhá kompilace kódu

Tento kód kompilace, vytvořit nový Visual Studio přidat projekt v Visual Basic a nahraďte kód třídy připojit kód v příkladu.Informace o spuštění v Postup: ovládání doplňky pomocí Správce doplňků.

Viz také

Úkoly

Jak: reagovat na události webové odkazy (Visual C#)

Další zdroje

Reakce na události automatizace

Reakce na události (Visual Basic a Visual C# projekty)