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
Vytvoření Visual Studio přidat projekt v Visual Basic.
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.
Přidat Imports VSLangProj a Imports VSLangProj80 na začátek souboru Connect.vb.
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í.
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
Přidáte deklarace metody WebReferenceEventsSample přímo pod metodu OnConnection.
Sub WebReferenceEventsSample(ByVal dte As DTE2) End Sub
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ů.
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)
V metodě WebReferenceEventsSample také načtěte objekty událostí z automatizace modelu.
webRefEvents = vsproj.Events2.VSLangProjWebReferencesEvents
Připojení obslužné rutiny události.
AddHandler webRefEvents.OnAfterWebReferenceAdded, _ AddressOf WebReferenceAdded AddHandler webRefEvents.OnBeforeWebReferenceRemoved, _ AddressOf WebReferenceRemoved AddHandler webRefEvents.OnWebReferenceChanged, _ AddressOf WebReferenceChanged
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.
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
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.
Chcete-li vytvořit doplněk, klepněte na tlačítko Sestavit řešení na sestavení nabídce.
Otevřít Visual C# nebo Visual Basic v projektu Visual Studio integrované vývojové prostředí (IDE).
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
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ě.
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.
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#)