مشاركة عبر


CodeDelegate2.InfoLocation الخاصية

قدرات نموذج تعليمات برمجية للحصول تفويض.

مساحة الاسم:  EnvDTE80
التجميع:  EnvDTE80 (في EnvDTE80.dll)

بناء الجملة

'إقرار
ReadOnly Property InfoLocation As vsCMInfoLocation
    Get
vsCMInfoLocation InfoLocation { get; }
property vsCMInfoLocation InfoLocation {
    vsCMInfoLocation get ();
}
abstract InfoLocation : vsCMInfoLocation
function get InfoLocation () : vsCMInfoLocation

قيمة الخاصية

النوع: EnvDTE.vsCMInfoLocation
vsCMInfoLocationالقيمة ثابتة.

التطبيقات

CodeDelegate.InfoLocation

ملاحظات

في حالة InfoLocationإرجاع vsCMInfoLocationProject، ثم يمكنك تعيين خصائص، الحصول على StartPoint، و الحصول على EndPoint. عند انتقال من رمز واحد طراز الكائن (أ) إلى آخر (ب) — مثلاً من دالة لنوعه أو من فئة للفئة الأساسية الخاصة به — قد تكون B من نوع vsCMInfoLocationExternalإذا تعريفه هو في مشروع آخر. dهوposition يعتمد تشغيل تطبيق نموذج تعليمات برمجية، ما إذا كان الكائن المشروع الخاص ب هو تنفيذها بنفس اللغة ككائن بما

في حالة InfoLocationإرجاع vsCMInfoLocationExternal، ثم معلومات هو متوفرة فقط من بيانات التعريف، وذلك بفحص ملف DLL، أو من المصادر مجمد. قد تتمكن من الحصول على StartPointو EditPoint2، ولكن لا يمكنك تحرير مستند؛ وذلك هو، لا يمكنك تعيين خصائص أو قم بتعديل نص خلف عنصر تعليمات برمجية.

في حالة InfoLocationإرجاع vsCMInfoLocationNone، ثم كل هو المتوفرة هو على كائن نموذج التعليمات برمجية له اسم. أيضا، استناداً إلى سياق تعليمات برمجية المصدر، في بعض الحالات يمكنك معرفة ما إذا كان اسم يجب أن تكون فئة أو واجهة. في ترتيب هو الموقف، على الرغم من ذلك، لأنه تعذر حل الاسم في طراز تعليمات برمجية بأية معلومات مفيدة، الكائن هو otherwهوe دون فائدة.

ملاحظة

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

أمثلة

قبل تشغيل هذا المثال، تحميل مشروع باستخدام فئة و إدراج السطر التالي بالإضافة إلى تعليمات برمجية المثال. بعد كل سطر و مثال تتم إضافة تعليمات برمجية، انقر فوق Delegateخط لوضع يؤشر الإدراج هناك، ومن ثم تشغيل مثال.

[Visual Basic]

Delegate Sub MySubDelegate(ByVal x As Integer)

[#C]

public delegate void MySubDelegate(int x);

[Visual Basic]

Public Sub CodeDelegateExample(ByVal dte As DTE2)
    ' Before running this example, open a code document from a 
    ' project and place the insertion point inside a class 
    ' definition.
    Try
        ' Retrieve the CodeClass at the insertion point.
        Dim sel As TextSelection = _
            CType(DTE.ActiveDocument.Selection, TextSelection)
        Dim del As CodeDelegate2 = _
            CType(sel.ActivePoint.CodeElement( _
        vsCMElement.vsCMElementDelegate), CodeDelegate2)
        Dim elem As CodeElement2
        Dim sb As New System.Text.StringBuilder

        ' Display the baseclass name of the delegate.
        sb.AppendLine("Delegate base class name: " & _
          del.BaseClass.Name)
        sb.AppendLine("Delegate's access: " & del.Access.ToString)
        sb.AppendLine("Children: " & del.Children.Count & "  _
          Name: " & del.Children.Item(1).Name)
        sb.AppendLine("Collection: " & del.Collection.Count)
        sb.AppendLine("Delegates:")
        For Each elem In del.Collection
            sb.AppendLine("    - " & elem.Name)
        Next
        sb.AppendLine("Comment: " & del.Comment)
        sb.AppendLine("Doc Comment: " & del.DocComment)
        sb.AppendLine("DTE Parent: " & del.DTE.Name)
        sb.AppendLine("Endpoint location: " & _
          del.EndPoint.AbsoluteCharOffset)
        sb.AppendLine("Infolocation: " & del.InfoLocation.ToString)
        sb.AppendLine("Can provide CodeType object? " & _
          del.IsCodeType.ToString)
        sb.AppendLine("Is Delegate derived? " & _
          del.IsDerivedFrom("EnvDTE80"))
        sb.AppendLine("Is Delegate a generic? " & del.IsGeneric)
        sb.AppendLine("Kind: " & del.Kind.ToString)
        sb.AppendLine("Authoring language: " & _
          del.Language.ToString)
        sb.AppendLine("Name: " & del.Name)
        sb.AppendLine("Namespace: " + del.Namespace.Name);
        sb.AppendLine("Parameters: " & del.Parameters.Item(1).Name)
        sb.AppendLine("Project containing the delegate: " & _
          del.ProjectItem.Name)
        sb.AppendLine("Prototype for delegate: " & del.Prototype)
        sb.AppendLine("Delegate start point offset: " & _
          del.StartPoint.LineCharOffset)
        sb.AppendLine("Type: " & del.Type.TypeKind.ToString)
        MsgBox(sb.ToString)

    Catch ex As System.Exception
        MsgBox(ex.ToString)
    End Try
End Sub

[#C]

public void CodeDelegateExample(DTE2 DTE)
{
    try
    {
        // Retrieve the CodeClass at the insertion point.
        TextSelection sel = (TextSelection) 
          DTE.ActiveDocument.Selection;
        CodeDelegate2 del = (CodeDelegate2) 
          sel.ActivePoint.get_CodeElement
          (vsCMElement.vsCMElementDelegate);
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        // Display the baseclass name of the delegate.
        sb.AppendLine("Delegate base class name: " + 
          del.BaseClass.Name);
        sb.AppendLine("Delegate's access: " + del.Access);
        sb.AppendLine("Children: "+del.Children.Count+"  Name: 
          "+del.Children.Item(1).Name);
        sb.AppendLine("Collection: "+del.Collection.Count);
        sb.AppendLine("Delegates:");
        foreach (CodeElement2 elem in del.Collection )
        {
            sb.AppendLine("    - "+elem.Name);
        }
        sb.AppendLine("Comment: "+del.Comment);
        sb.AppendLine("Attributes:"); 
        foreach (CodeElement2 elem in del.Attributes)
        {
            sb.AppendLine("    - " + elem.Name);
        }
        sb.AppendLine("Bases:");
        foreach (CodeElement2 elem in del.Bases)
        {
            sb.AppendLine("    - " + elem.Name);
        } 
        sb.AppendLine("Doc Comment: " + del.DocComment);
        sb.AppendLine("DTE Parent: "+del.DTE.Name);
        sb.AppendLine("Endpoint location: 
          "+del.EndPoint.AbsoluteCharOffset);
        sb.AppendLine("Infolocation: "+del.InfoLocation);
        sb.AppendLine("Can provide CodeType object? "+del.IsCodeType);
        sb.AppendLine("Is Delegate derived? 
          "+del.get_IsDerivedFrom("EnvDTE80"));
        sb.AppendLine("Is Delegate a generic? "+del.IsGeneric);
        sb.AppendLine("Kind: "+del.Kind);
        sb.AppendLine("Authoring language: "+del.Language);
        sb.AppendLine("Name: "+del.Name);
        sb.AppendLine("Parameters: "+del.Parameters.Item(1).Name);
        sb.AppendLine("Namespace: " + del.Namespace.Name);
        sb.AppendLine("Project containing the delegate: 
          "+del.ProjectItem.Name);
        sb.AppendLine("Delegate start point offset: 
          "+del.StartPoint.LineCharOffset);
        sb.AppendLine("Type: "+del.Type.TypeKind);
          MessageBox.Show(sb.ToString());
    }
    catch(System.Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

أمن NET Framework.

راجع أيضًَا

المرجع

CodeDelegate2 واجهة

CodeDelegate2 الأعضاء

InfoLocation التحميل الزائد

EnvDTE80 مساحة الاسم

موارد أخرى

كيفية: الترجمة وإعادة تشغيل أمثلة التعليمات البرمجية لطراز كائن التنفيذ التلقائي

اكتشاف التعليمات البرمجية باستخدام "نموذج التعليمات البرمجية" (Visual Basic)

اكتشاف التعليمات البرمجية باستخدام "نموذج التعليمات البرمجية" (Visual C#)