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