Interfaccia CodeElement2

Rappresenta un costrutto o un elemento di codice in un file di origine.

Spazio dei nomi:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)

Sintassi

'Dichiarazione
<GuidAttribute("F03DCCE8-233B-43D7-A66B-A66EFC1F85C3")> _
Public Interface CodeElement2 _
    Inherits CodeElement
[GuidAttribute("F03DCCE8-233B-43D7-A66B-A66EFC1F85C3")]
public interface CodeElement2 : CodeElement
[GuidAttribute(L"F03DCCE8-233B-43D7-A66B-A66EFC1F85C3")]
public interface class CodeElement2 : CodeElement
[<GuidAttribute("F03DCCE8-233B-43D7-A66B-A66EFC1F85C3")>]
type CodeElement2 =  
    interface
        interface CodeElement
    end
public interface CodeElement2 extends CodeElement

Il tipo CodeElement2 espone i seguenti membri.

Proprietà

  Nome Descrizione
Proprietà pubblica Children (Ereditato da CodeElement)
Proprietà pubblica Children Ottiene un insieme di oggetti contenuti all'interno di CodeElement2.
Proprietà pubblica Collection (Ereditato da CodeElement)
Proprietà pubblica Collection Ottiene l'insieme CodeElements contenente l'oggetto CodeElement2 che supporta la proprietà.
Proprietà pubblica DTE (Ereditato da CodeElement)
Proprietà pubblica DTE Ottiene l'oggetto estensibilità di primo livello.
Proprietà pubblica ElementID Ottiene un valore che identifica in modo univoco l'elemento.Non implementato in Visual C#.
Proprietà pubblica EndPoint (Ereditato da CodeElement)
Proprietà pubblica EndPoint Ottiene il punto di inserimento corrispondente alla fine dell'elemento di codice.
Proprietà pubblica Extender[String] (Ereditato da CodeElement)
Proprietà pubblica Extender[String] Restituisce l'oggetto Extender richiesto, se disponibile per l'oggetto CodeElement2.Non implementato in Visual C#.
Proprietà pubblica ExtenderCATID (Ereditato da CodeElement)
Proprietà pubblica ExtenderCATID Ottiene l'ID della categoria Extender (CATID) per l'oggetto CodeElement2.Non implementato in Visual C#.
Proprietà pubblica ExtenderNames (Ereditato da CodeElement)
Proprietà pubblica ExtenderNames Ottiene un elenco degli oggetti Extender disponibili per l'oggetto CodeElement2.Non implementato in Visual C#.
Proprietà pubblica FullName (Ereditato da CodeElement)
Proprietà pubblica FullName Ottiene il percorso completo e il nome del file dell'oggetto CodeElement2.
Proprietà pubblica InfoLocation (Ereditato da CodeElement)
Proprietà pubblica InfoLocation Ottiene le funzionalità del modello di codice.
Proprietà pubblica IsCodeType (Ereditato da CodeElement)
Proprietà pubblica IsCodeType Determina se è possibile o meno ottenere un oggetto CodeType dall'oggetto CodeElement2.
Proprietà pubblica Kind (Ereditato da CodeElement)
Proprietà pubblica Kind Ottiene un'enumerazione che definisce il tipo di elemento di codice.
Proprietà pubblica Language (Ereditato da CodeElement)
Proprietà pubblica Language Ottiene il linguaggio di programmazione utilizzato per modificare CodeElement2.
Proprietà pubblica Name (Ereditato da CodeElement)
Proprietà pubblica Name Ottiene o imposta il nome dell'oggetto CodeElement2.
Proprietà pubblica ProjectItem (Ereditato da CodeElement)
Proprietà pubblica ProjectItem Ottiene l'oggetto ProjectItem associato all'oggetto CodeElement.
Proprietà pubblica StartPoint (Ereditato da CodeElement)
Proprietà pubblica StartPoint Ottiene un oggetto TextPoint che definisce l'inizio di CodeElement2.

In alto

Metodi

  Nome Descrizione
Metodo pubblico GetEndPoint(vsCMPart) (Ereditato da CodeElement)
Metodo pubblico GetEndPoint(vsCMPart) Ottiene un oggetto TextPoint che contrassegna la fine della definizione dell'elemento di codice.
Metodo pubblico GetStartPoint(vsCMPart) (Ereditato da CodeElement)
Metodo pubblico GetStartPoint(vsCMPart) Ottiene un oggetto TextPoint che contrassegna l'inizio della definizione dell'elemento di codice.
Metodo pubblico RenameSymbol Modifica il nome dichiarato di un oggetto e aggiorna tutti i riferimenti del codice all'oggetto nell'ambito del progetto corrente.

In alto

Note

Sebbene un elemento di codice possa essere costituito da qualsiasi frammento di codice, in genere in un linguaggio è presente un oggetto CodeElement2 per ogni definizione o sintassi dichiarativa. Di conseguenza, per le dichiarazioni o le definizioni di primo livello contenute in un file o per qualsiasi forma sintattica inclusa in una definizione di classe e così via, è disponibile un oggetto CodeElement2 corrispondente.

Nota

I valori degli elementi del modello di codice, quali classi, strutture, funzioni, attributi, delegati e così via, possono non essere deterministici dopo alcuni tipi di modifiche. Ciò significa che non si può fare affidamento sulla stabilità di tali valori. Per ulteriori informazioni, vedere la sezione Possibile modifica dei valori degli elementi del modello di codice in Individuazione di codice mediante il modello di codice (Visual Basic).

Esempi

[Visual Basic]

Sub IsCodeTypeExample(ByVal dte As DTE2)

    ' NOTE: This example requires a reference to the System.Text 
    '       namespace.

    ' Before running this example, open a code document from a project.
    Dim item As ProjectItem = dte.ActiveDocument.ProjectItem
    Dim sb As New StringBuilder

    RecurseElements(item.FileCodeModel.CodeElements, 0, sb)

    MsgBox(item.Name & " contains the following elements:" & vbCrLf & _
        vbCrLf & sb.ToString())

End Sub

Sub RecurseElements(ByVal elems As CodeElements, _
    ByVal level As Integer, ByVal sb As StringBuilder)

    Dim elem As CodeElement
    For Each elem In elems
        ' Add element to the list of names.
        sb.Append(" "c, level * 8)
        sb.Append(elem.Name & " [" & elem.Kind.ToString() & "]" & _
            vbCrLf)

        ' Call this function recursively if element has children.
        If elem.Kind = vsCMElement.vsCMElementNamespace Then
            RecurseElements(CType(elem, CodeNamespace).Members, _
                level + 1, sb)
        ElseIf elem.IsCodeType Then
            RecurseElements(CType(elem, CodeType).Members, _
                level + 1, sb)
        End If
    Next
End Sub

[C#]

public void IsCodeTypeExample(DTE2 dte)
{
    // NOTE: This example requires a reference to the System.Text 
    //       namespace.

    // Before running this example, open a code document from a 
    // project.
    ProjectItem item = dte.ActiveDocument.ProjectItem;
    StringBuilder sb = new StringBuilder();

    RecurseElements(item.FileCodeModel.CodeElements, 0, sb);

    MessageBox.Show(item.Name + " contains the following elements:" + 
        Environment.NewLine + Environment.NewLine + sb.ToString());
}

void RecurseElements(CodeElements elems, int level, StringBuilder sb)
{
    foreach (CodeElement elem in elems)
    {
        // Add element to the list of names.
        sb.Append(' ', level * 8);
        sb.Append(elem.Name + " [" + elem.Kind.ToString() + "]" + 
            Environment.NewLine);

        // Call this function recursively if element has children.
        if (elem.Kind == vsCMElement.vsCMElementNamespace)
            RecurseElements(((CodeNamespace)elem).Members, 
                level + 1, sb);
        else if (elem.IsCodeType)
            RecurseElements(((CodeType)elem).Members, level + 1, sb);
    }
}

Vedere anche

Riferimenti

Spazio dei nomi EnvDTE80

Altre risorse

Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione

Individuazione di codice mediante il modello di codice (Visual Basic)

Individuazione di codice mediante il modello di codice (Visual C#)