Condividi tramite


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 una raccolta di oggetti contenuti in questo CodeElement2.
Proprietà pubblica Collection (Ereditato da CodeElement)
Proprietà pubblica Collection ottiene CodeElements contenuto della raccolta CodeElement2 che supporta tale 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'estensione richiesta se è disponibile per questa CodeElement2 oggetto.Non implementato in Visual c#.
Proprietà pubblica ExtenderCATID (Ereditato da CodeElement)
Proprietà pubblica ExtenderCATID Ottiene l'ID della categoria extender (CATID) per CodeElement2 oggetto.Non implementato in Visual c#.
Proprietà pubblica ExtenderNames (Ereditato da CodeElement)
Proprietà pubblica ExtenderNames Ottiene un elenco degli extender disponibili per CodeElement2 oggetto.Non implementato in Visual c#.
Proprietà pubblica FullName (Ereditato da CodeElement)
Proprietà pubblica FullName Ottiene il percorso completo e il nome di CodeElement2 il file dell'oggetto.
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 Ottiene indipendentemente da a CodeType l'oggetto può essere ottenuto dal CodeElement2 oggetto.
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 creare CodeElement2.
Proprietà pubblica Name (Ereditato da CodeElement)
Proprietà pubblica Name Ottiene o imposta il nome del CodeElement2 oggetto.
Proprietà pubblica ProjectItem (Ereditato da CodeElement)
Proprietà pubblica ProjectItem ottiene ProjectItem oggetto associato a CodeElement oggetto.
Proprietà pubblica StartPoint (Ereditato da CodeElement)
Proprietà pubblica StartPoint Ottiene un oggetto TextPoint oggetto 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 oggetto 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 oggetto che definisce l'inizio della definizione dell'elemento di codice.
Metodo pubblico RenameSymbol Modifica il nome dichiarato di un oggetto e aggiorna tutti i riferimenti al codice all'oggetto nel progetto corrente.

In alto

Note

Un elemento di codice può essere qualsiasi frammento di codice, ma in genere, sono disponibili CodeElement2 oggetto per ogni definizione o sintassi dichiarativa in un linguaggio.Ciò significa che per la maggior parte delle definizioni o dichiarazioni di primo livello in un file, o per qualsiasi forma sintattica nella definizione di una classe, e così via, esiste una corrispondenza CodeElement2 oggetto.

[!NOTA]

I valori degli elementi del modello di codice come classi, strutture, le funzioni, gli attributi, delegati, e così via possono non essere deterministici dopo l'inserimento di determinati tipi di modifiche, pertanto i relativi valori non possono essere basati su per rimanere sempre gli stessi.Per ulteriori informazioni, vedere i valori degli elementi del modello di codice della sezione può cambiare 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#)