كيفية القيام بما يلي: الاستجابة إلى أحداث مراجع ويب (‏‫#Visual C)

بيئة أحداث معينة إلى VSLangProjو VSLangProj80مشاريع تم تعريفها في #Visual Cو Visual Basic. VSLangProjWebReferencesEventsنوع جديد، فيVisual Studio 2005. تشغيل الحدث عند تمت الإضافة إلى مرجع ويب أو إزالتها منها أو عند ‏‏تاريخ التعديل خصائصه في أحد Visual Basicأو #Visual Cالمشروع.

يتصل هذا المثال بأساليب معالجة الحدث لمشروع معين باستخدام الخاصية Visual Basic.

ملاحظة

قد تختلف مربعات الحوار وأوامر القائمة التى تشاهدها الان عن تلك الموصوفة في التعليمات اعتماداً على الإعدادات النشطة أو الإصدار الخاص بك. تم تطوير هذه الإجراءات من خلال "إعدادات تطوير عام" النشط. لتغيير الإعدادات الخاصة بك, اختر إعدادات الاستيراد و التصدير ضمن القائمة أدوات . لمزيد من المعلومات، راجع العمل مع إعدادات.

إلى مؤشر أحداث متعلقة بـ مراجع ويب باستخدام ‏‫#Visual C

  1. إنشاء Visual Studioالمشروع الوظيفة الإضافية في Visual Basic.

  2. تشغيل القائمة مشروع، انقر فوق إضافة مرجع، انقر فوق علامة تبويب .NET تحديد VSLangProj VSLangProj2 VSLangProj80 ثم انقر فوق ‏‏موافق .

  3. إضافة Imports VSLangProjإلى أعلى الملف يعيّن.vb.

  4. في الفئة يعيّن يهيّئ متغير إلى معالجة 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. للحصول إكمال قائمة الأحداث التي تحدث في أنواع المشاريع راجع حدث الكائنات (محددة بأنواع المشاريع). للحصول على قائمة أحداث التنفيذ التلقائي العامة راجع كائنات أحداث التنفيذ التلقائي.

  5. إضافة استدعاء الأسلوب التالي إلى أسلوب 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. إضافة تعريف أسلوب CSVSProj2Manip مباشرةً أسفل أسلوب OnConnection.

    Sub WebReferenceEventsSample(ByVal dte As DTE2)
    
    End Sub
    
  7. قم بإضافة سطر التعليمة البرمجية التالية أعلى الملف.

    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الكائن تقتصر إلى المشروع تلك الأنواع.

  8. تحويل المشروع VSProject2الكائن بواسطة إضافة ما يلي تعليمات برمجية إلى أسلوب WebReferenceEventsSample.

    ' Cast the project to a VSProject2.
    vsproj = CType(proj.Object, VSProject2)
    
  9. في أسلوب استرداد الحدث الكائنات من طراز التنفيذ التلقائي.

    webRefEvents = vsproj.Events2.VSLangProjWebReferencesEvents
    
  10. يعيّن معالجات الأحداث.

    AddHandler webRefEvents.OnAfterWebReferenceAdded, _
     AddressOf WebReferenceAdded
    AddHandler webRefEvents.OnBeforeWebReferenceRemoved, _
     AddressOf WebReferenceRemoved
    AddHandler webRefEvents.OnWebReferenceChanged, _
     AddressOf WebReferenceChanged
    
  11. إضافة مرجع ويب إلى المشروع.

    ' 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الحدث إلى إطلاق عند تشغيل هذا إضافة - بوصة

  12. إضافة إجراءات لكل حدث المتعلقة إلى كائن الحدث.

    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. وأخيراً، لمنع 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
    

    يتم إدراج رمز كاملة في المقطع المثال الخاص بهذا الموضوع.

  14. إلى إنشاء الوظيفة الإضافية وانقر فوق بنية الحل بنية قائمة.

  15. إفتح المشروع في بيئة التطوير المتكاملة (IDE).

  16. في القائمة أدوات، انقر فوق إضافة - إدارة وتحديد الخاص بك إضافة - من إضافة - في إدارة مربع حوار. انقر فوق ‏‏موافق إلى تشغيل الوظيفة الإضافية.

إلى اختبار معالجة الحدث VSLangProjWebReferencesEvents

  1. OnAfterWebReferenceAddedوقع الحدث بمجرد تشغيل الوظيفة الإضافية ، لأن المثال يضيف مرجعاً إلى الخدمة ويب برمجياً.

  2. إلى اختبار OnWebReferenceChangedالحدث:

    • في متصفح الحلول, قم بتوسيع مجلد المراجع.

    • تحديد الخدمة ويب ثم ينقر على اليمينه.

    • تحديد ماكرو جديد من قائمة منسدلة.

    • في النافذة الخصائص، تغيير السلوك URL من ديناميكي إلى ثابت عن طريق تحديد الثابتة من مربع تحرير وسرد سلوك محدد موقع المعلومات (URL) .

  3. إلى اختبار 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)

موارد أخرى

استجابة إلى أحداث التنفيذ التلقائي

استجابة إلى أحداث (Visual Basic و ‏‫#Visual C المشاريع)