Freigeben über


CodeElement2-Schnittstelle

Stellt ein Codeelement oder -konstrukt in einer Quelldatei dar.

Namespace:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)

Syntax

'Declaration
<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

Der CodeElement2-Typ macht die folgenden Member verfügbar.

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft Children (Von CodeElement geerbt.)
Öffentliche Eigenschaft Children Ruft eine Auflistung der Objekte ab, die innerhalb von CodeElement2 enthalten sind.
Öffentliche Eigenschaft Collection (Von CodeElement geerbt.)
Öffentliche Eigenschaft Collection Ruft die CodeElements-Auflistung mit dem CodeElement2 ab, der diese Eigenschaft unterstützt.
Öffentliche Eigenschaft DTE (Von CodeElement geerbt.)
Öffentliche Eigenschaft DTE Ruft das Erweiterbarkeitsobjekt der obersten Ebene ab.
Öffentliche Eigenschaft ElementID Ruft einen Wert ab, der das Element eindeutig kennzeichnet.Nicht implementiert in Visual C#.
Öffentliche Eigenschaft EndPoint (Von CodeElement geerbt.)
Öffentliche Eigenschaft EndPoint Ruft den Textpunkt ab, der die Position am Ende des Codeelements darstellt.
Öffentliche Eigenschaft Extender[String] (Von CodeElement geerbt.)
Öffentliche Eigenschaft Extender[String] Gibt den angeforderten Extender zurück, falls er für dieses CodeElement2-Objekt verfügbar ist.Nicht implementiert in Visual C#.
Öffentliche Eigenschaft ExtenderCATID (Von CodeElement geerbt.)
Öffentliche Eigenschaft ExtenderCATID Ruft die ID der Extenderkategorie (CATID) für das CodeElement2-Objekt ab.Nicht implementiert in Visual C#.
Öffentliche Eigenschaft ExtenderNames (Von CodeElement geerbt.)
Öffentliche Eigenschaft ExtenderNames Ruft eine Liste der verfügbaren Extender für das CodeElement2-Objekt ab.Nicht implementiert in Visual C#.
Öffentliche Eigenschaft FullName (Von CodeElement geerbt.)
Öffentliche Eigenschaft FullName Ruft den vollständigen Pfad und Namen der Datei des CodeElement2-Objekts ab.
Öffentliche Eigenschaft InfoLocation (Von CodeElement geerbt.)
Öffentliche Eigenschaft InfoLocation Ruft die Funktionen des Codemodells ab.
Öffentliche Eigenschaft IsCodeType (Von CodeElement geerbt.)
Öffentliche Eigenschaft IsCodeType Ruft ab, ob ein CodeType-Objekt aus dem CodeElement2-Objekt abgerufen werden kann.
Öffentliche Eigenschaft Kind (Von CodeElement geerbt.)
Öffentliche Eigenschaft Kind Ruft eine Enumeration ab, die den Typ des Codeelements definiert.
Öffentliche Eigenschaft Language (Von CodeElement geerbt.)
Öffentliche Eigenschaft Language Ruft die Programmiersprache ab, die verwendet wird, um den CodeElement2 zu erstellen.
Öffentliche Eigenschaft Name (Von CodeElement geerbt.)
Öffentliche Eigenschaft Name Ruft den Namen des CodeElement2-Objekts ab oder legt ihn fest.
Öffentliche Eigenschaft ProjectItem (Von CodeElement geerbt.)
Öffentliche Eigenschaft ProjectItem Ruft das mit dem CodeElement-Objekt verknüpfte ProjectItem-Objekt ab.
Öffentliche Eigenschaft StartPoint (Von CodeElement geerbt.)
Öffentliche Eigenschaft StartPoint Ruft ein TextPoint-Objekt ab, das den Anfang von CodeElement2 definiert.

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode GetEndPoint(vsCMPart) (Von CodeElement geerbt.)
Öffentliche Methode GetEndPoint(vsCMPart) Ruft ein TextPoint-Objekt ab, das das Ende der Codeelementdefinition markiert.
Öffentliche Methode GetStartPoint(vsCMPart) (Von CodeElement geerbt.)
Öffentliche Methode GetStartPoint(vsCMPart) Ruft ein TextPoint-Objekt ab, das den Anfang der Codeelementdefinition markiert.
Öffentliche Methode RenameSymbol Ändert den deklarierten Namen eines Objekts und aktualisiert alle Codeverweise auf das Objekt im Gültigkeitsbereich des aktuellen Projekts.

Zum Seitenanfang

Hinweise

Ein Codeelement kann ein beliebiges Codefragment sein, wobei für jede Definition oder Deklarationssyntax in einer Programmiersprache normalerweise ein CodeElement2-Objekt vorhanden ist.Dies bedeutet, dass für die meisten Definitionen oder Deklarationen der obersten Ebene in einer Datei oder für jede Syntaxform in einer Klassendefinition usw. ein entsprechendes CodeElement2-Objekt vorhanden ist.

HinweisHinweis

Die Werte von Codemodellelementen wie Klassen, Strukturen, Funktionen, Attributen, Delegaten usw. können nach bestimmten Bearbeitungsvorgängen nicht deterministisch sein, d. h., dass nicht mehr davon ausgegangen werden kann, dass ihre Werte immer unverändert bleiben.Weitere Informationen finden Sie im Abschnitt zum Änderungsverhalten von Codemodellelementwerten unter Ermitteln von Code über das Codemodell (Visual Basic).

Beispiele

[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);
    }
}

Siehe auch

Referenz

EnvDTE80-Namespace

Weitere Ressourcen

Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell

Ermitteln von Code über das Codemodell (Visual Basic)

Ermitteln von Code über das Codemodell (Visual C#)