Udostępnij za pośrednictwem


Jak: reagowanie na zdarzenia odwołań w sieci Web (Visual Basic)

Zdarzenia środowiska, określonych w VSLangProj i VSLangProj80 są specyficzne dla Visual C# i Visual Basic projektów.VSLangProjWebReferencesEventsjest to nowy typ w Visual Studio 2005.Jest wywoływane, gdy odwołanie sieci Web jest dodane lub usunięte z Visual Basic lub Visual C# projektu, lub modyfikacji właściwości odwołanie sieci Web w Visual Basic lub Visual C# projektu.

W tym przykładzie użyto Visual Basic połączyć się przy użyciu metody obsługi zdarzeń dla konkretnego projektu VSLangProjWebReferencesEvents właściwości.

[!UWAGA]

Okien dialogowych i poleceń menu, którą widzisz mogą różnić się od tych opisanych w pomocy, w zależności od tego, aktywne ustawienia lub edition.Procedury te zostały opracowane z ogólnych ustawień rozwoju aktywnych.Aby zmienić ustawienia, wybierz polecenie Importuj i Eksportuj ustawienia na Narzędzia menu.Aby uzyskać więcej informacji, zobacz Visual Studio, ustawienia.

Do obsługi zdarzeń związanych z odniesieniami do sieci Web przy użyciu języka Visual Basic

  1. Tworzenie Visual Studio dodatek projektu w Visual Basic.

  2. Na Projekt menu, kliknij przycisk Dodaj odwołanie, kliknij przycisk .NET tab, zaznacz pierwszy VSLangProj i VSLangProj80 i kliknij przycisk OK.

  3. Dodaj Imports VSLangProj i Imports VSLangProj80 do początku pliku Connect.vb.

  4. W klasie Połącz Zainicjuj zmienną do obsługi VSLangProjWebReferencesEvents obiektu.

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

    W tym przykładzie zmienna o nazwie webRefEvents.

    Innych obiektów w modelu automatyzacji odnoszą się do innych typów zdarzeń, które są specyficzne dla projektu.Na przykład ImportsEvents jest wywoływane, gdy przywóz jest dodane lub usunięte z Imports kolekcji.BuildManagerEventsstosuje się do zdarzeń związanych z zestawów tymczasowych zbudowany z wyjść z narzędzia niestandardowe.Aby uzyskać więcej informacji na BuildManager obiektów, zobacz Wprowadzenie do obiektu, Obiekt BuildManager.Aby uzyskać pełną listę zdarzeń, które są specyficzne dla typów projektów, zobacz Obiekty zdarzeń (szczególne rodzaje projektów).Aby uzyskać listę zdarzeń automatyzacji ogólne, zobacz Obiekty zdarzeń automatyzacji.

  5. Dodaj poniższe wywołanie metody do 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. Dodaj deklaracja metody WebReferenceEventsSample, bezpośrednio poniżej metoda OnConnection.

    Sub WebReferenceEventsSample(ByVal dte As DTE2)
    
    End Sub
    
  7. Dodaj następujące deklaracje do góry metody 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)
    

    Deklaracja proj = soln.Projects.Item(1) wymaga się, że projekt jest otwarty w Visual Studio zintegrowane środowisko dewelopowania (IDE) uruchomić ten przykład.W szczególności projekt musi być Visual Basic lub Visual C# projektu, ponieważ VSLangProjWebReferencesEvents obiektu jest specyficzny dla tych typów projektów.

  8. Oddania projektu do VSProject2 obiektu, dodając następujący kod do metody WebReferenceEventsSample.

    ' Cast the project to a VSProject2.
    vsproj = CType(proj.Object, VSProject2)
    
  9. Również w metodzie WebReferenceEventsSample pobierać z automatyzacji modelu obiektów zdarzeń.

    webRefEvents = vsproj.Events2.VSLangProjWebReferencesEvents
    
  10. Połączenie programów obsługi zdarzeń.

    AddHandler webRefEvents.OnAfterWebReferenceAdded, _
     AddressOf WebReferenceAdded
    AddHandler webRefEvents.OnBeforeWebReferenceRemoved, _
     AddressOf WebReferenceRemoved
    AddHandler webRefEvents.OnWebReferenceChanged, _
     AddressOf WebReferenceChanged
    
  11. Dodawanie odwołania sieci Web 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)
    

    Aby programowo dodać odwołanie do usługi sieci Web, do projektu, należy zastąpić tekst zastępczy <web reference>, w kodzie za pomocą adresu URL rzeczywiste usługi sieci Web.

    W tym kroku powoduje, że OnAfterWebReferenceAdded zdarzenia ognia po uruchomieniu tego dodatku.

  12. Dodawanie procedury dla każdego zdarzenia związane z obiektu zdarzenia.

    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. Wreszcie Aby zapobiec Visual Studio spowalniały one systemu poprzez kontynuowanie monitorowania zdarzeń związanych z okna, po zamknięciu dodatku, należy wyłączyć obsługę zdarzeń.W Visual Basic, jest to realizowane przez ustawienie obsługi zdarzeń Nothing.

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

    Kompletny kod znajduje się w sekcji przykład tego tematu.

  14. Aby zbudować dodatek, kliknij przycisk Roztwór budować na budować menu.

  15. Otwórz Visual C# lub Visual Basic projektu w Visual Studio zintegrowane środowisko dewelopowania (IDE).

  16. Na Narzędzia menu, kliknij przycisk - w Menedżerzei wybierz dodatek z - W Menedżerze okno dialogowe.Kliknij przycisk OK do uruchomienia dodatku.

Aby przetestować obsługi zdarzeń VSLangProjWebReferencesEvents

  1. OnAfterWebReferenceAdded Zdarzenia uruchamiany po uruchomieniu dodatku, ponieważ w przykładzie dodano odwołanie do usługi sieci Web programowo.

  2. Aby przetestować OnWebReferenceChanged zdarzeń:

    • Rozwiń węzeł Web odniesienia folderu w Solution Explorer.

    • Wybierz usługę sieci Web i kliknij go prawym przyciskiem myszy.

    • Wybierz Właściwości z menu rozwijanego.

    • Na Właściwości okna, zmienić zachowanie adresu URL na dynamiczne statyczne przez zaznaczenie statyczne z URL zachowanie pola kombi.

  3. Aby przetestować OnBeforeWebReferenceRemoved zdarzeń:

    • Wybierz usługę sieci Web i kliknij go prawym przyciskiem myszy.

    • Wybierz usunąć z menu rozwijanego.

Przykład

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

Kompilowanie kodu

Aby skompilować kod, Utwórz nowy Visual Studio dodatek projektu w Visual Basic i Zastąp kod w przykładzie kodu klasy Połącz.Aby uzyskać informacje o sposobach uruchamiania dodatku, zobacz Jak: dodatki formantu przy użyciu dodać Menedżera.

Zobacz też

Zadania

Jak: reagowanie na zdarzenia odwołań w sieci Web (Visual C#)

Inne zasoby

Reagowanie na zdarzenia automatyzacji

Reagowanie na zdarzenia (Visual Basic i Visual C# projektów)