كيفية القيام بما يلي: الاستجابة إلى أحداث مراجع ويب (#Visual C)
بيئة أحداث معينة إلى VSLangProjو VSLangProj80مشاريع تم تعريفها في #Visual Cو Visual Basic. VSLangProjWebReferencesEventsنوع جديد، فيVisual Studio 2005. تشغيل الحدث عند تمت الإضافة إلى مرجع ويب أو إزالتها منها أو عند تاريخ التعديل خصائصه في أحد Visual Basicأو #Visual Cالمشروع.
يتصل هذا المثال بأساليب معالجة الحدث لمشروع معين باستخدام الخاصية Visual Basic.
ملاحظة
قد تختلف مربعات الحوار وأوامر القائمة التى تشاهدها الان عن تلك الموصوفة في التعليمات اعتماداً على الإعدادات النشطة أو الإصدار الخاص بك. تم تطوير هذه الإجراءات من خلال "إعدادات تطوير عام" النشط. لتغيير الإعدادات الخاصة بك, اختر إعدادات الاستيراد و التصدير ضمن القائمة أدوات . لمزيد من المعلومات، راجع العمل مع إعدادات.
إلى مؤشر أحداث متعلقة بـ مراجع ويب باستخدام #Visual C
إنشاء Visual Studioالمشروع الوظيفة الإضافية في Visual Basic.
تشغيل القائمة مشروع، انقر فوق إضافة مرجع، انقر فوق علامة تبويب .NET تحديد VSLangProj VSLangProj2 VSLangProj80 ثم انقر فوق موافق .
إضافة Imports VSLangProjإلى أعلى الملف يعيّن.vb.
في الفئة يعيّن يهيّئ متغير إلى معالجة VSLangProjWebReferencesEventsالكائن.
Public Class Connect Implements IDTExtensibility2 Dim _applicationObject As DTE2 Dim _addInInstance As AddIn Public WithEvents webRefEvents As _ VSLangProj80.VSLangProjWebReferencesEvents
في هذا المثال، يسمى المتغير webRefEvents.
أخرى الكائنات في طراز التنفيذ التلقائي ربطها إلى أنواع أخرى من الأحداث التي تحدث في المشروع. على سبيل المثال، ImportsEventsتشغيل الحدث عند إضافتها إلى استيراد أو إزالتها من Importsمجموعة. BuildManagerEventsينطبق الأحداث المرتبطة المؤقتة التجميعات بناء من نتائج مرحلتي أدوات مخصصة. لمزيد من المعلومات، راجع BuildManagerObject Pathsمقدمة إلى كائن BuildManager. للحصول إكمال قائمة الأحداث التي تحدث في أنواع المشاريع راجع حدث الكائنات (محددة بأنواع المشاريع). للحصول على قائمة أحداث التنفيذ التلقائي العامة راجع كائنات أحداث التنفيذ التلقائي.
إضافة استدعاء الأسلوب التالي إلى أسلوب 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
إضافة تعريف أسلوب CSVSProj2Manip مباشرةً أسفل أسلوب OnConnection.
Sub WebReferenceEventsSample(ByVal dte As DTE2) End Sub
قم بإضافة سطر التعليمة البرمجية التالية أعلى الملف.
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)
تعريف proj = soln.Projects.Item(1)يتطلب أن مشروع مفتوح في Visual Studioبيئة التطوير المتكاملة (IDE) عند تشغيل هذا المثال. وبشكل خاص، يجب أن يكون المشروع Visual Basicأو #Visual Cالمشروع لأن VSLangProjWebReferencesEventsالكائن تقتصر إلى المشروع تلك الأنواع.
تحويل المشروع VSProject2الكائن بواسطة إضافة ما يلي تعليمات برمجية إلى أسلوب WebReferenceEventsSample.
' 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 "<web reference>" with an actual Web service URL. MsgBox("Adding a Web reference.", MsgBoxStyle.Information) webServiceRef = "<web reference>" vsproj.AddWebReference(webServiceRef)
لإضافة خدمة ويب بطريقة برمجية إلى المشروع يجب استبدال النص النائب, <web reference> في تعليمات برمجية مع محدد موقع المعلومات (URL) الخاص الفعلية ويب الخدمة.
تؤدي هذه الخطوة OnAfterWebReferenceAddedالحدث إلى إطلاق عند تشغيل هذا إضافة - بوصة
إضافة إجراءات لكل حدث المتعلقة إلى كائن الحدث.
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
وأخيراً، لمنع Visual Studioمن إبطاء النظام الخاص بك قبل المتابعة لمراقبة أحداث متعلقة بـ النافذة بعد يغلق إضافة - ضمنه، معالجة الحدث يعطل. في Visual Basic, ويتم تنفيذ ذلك عن طريق تعيين معالج الأحداث إلى Nothing.
Public Sub OnDisconnection(ByVal RemoveMode As_ Extensibility.ext_DisconnectMode, ByRef custom As System.Array)_ Implements Extensibility.IDTExtensibility2.OnDisconnection webRefEvents = Nothing End Sub
يتم إدراج رمز كاملة في المقطع المثال الخاص بهذا الموضوع.
إلى إنشاء الوظيفة الإضافية وانقر فوق بنية الحل بنية قائمة.
إفتح المشروع في بيئة التطوير المتكاملة (IDE).
في القائمة أدوات، انقر فوق إضافة - إدارة وتحديد الخاص بك إضافة - من إضافة - في إدارة مربع حوار. انقر فوق موافق إلى تشغيل الوظيفة الإضافية.
إلى اختبار معالجة الحدث VSLangProjWebReferencesEvents
OnAfterWebReferenceAddedوقع الحدث بمجرد تشغيل الوظيفة الإضافية ، لأن المثال يضيف مرجعاً إلى الخدمة ويب برمجياً.
إلى اختبار OnWebReferenceChangedالحدث:
في متصفح الحلول, قم بتوسيع مجلد المراجع.
تحديد الخدمة ويب ثم ينقر على اليمينه.
تحديد ماكرو جديد من قائمة منسدلة.
في النافذة الخصائص، تغيير السلوك URL من ديناميكي إلى ثابت عن طريق تحديد الثابتة من مربع تحرير وسرد سلوك محدد موقع المعلومات (URL) .
إلى اختبار OnBeforeWebReferenceRemovedالحدث:
تحديد الخدمة ويب ثم ينقر على اليمينه.
تحديد ماكرو جديد من قائمة منسدلة.
مثال
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
التحويل البرمجي للتعليمات البرمجية
إلى يحول برمجياً هذه التعليمة البرمجية إنشاء جديد Visual Studioإضافة-in المشروع واستبدالها رمز أسلوب OnConnection مع تعليمات برمجية الموجودة في المثال. لمزيد من المعلومات حول كيفية إلى تشغيل وظيفة الإضافية "، راجع كيفية: عنصر تحكم الوظائف الإضافية مع إدارة الوظائف الإضافية.
راجع أيضًا:
المهام
كيفية القيام بما يلي: الاستجابة إلى أحداث مراجع ويب (#Visual C)