CodeElement2, interface
Représente un élément ou une construction de code dans un fichier source.
Espace de noms : EnvDTE80
Assembly : EnvDTE80 (dans EnvDTE80.dll)
Syntaxe
'Déclaration
<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
Le type CodeElement2 expose les membres suivants.
Propriétés
Nom | Description | |
---|---|---|
Children | Obtient une collection d'objets contenus dans CodeElement2. | |
Collection | Obtient la collection CodeElements qui contient le CodeElement2 qui prend en charge cette propriété. | |
DTE | Obtient l'objet d'extensibilité de niveau supérieur. | |
ElementID | Obtient une valeur qui identifie l'élément de manière unique.Non implémenté en Visual C#. | |
EndPoint | Obtient le point de texte qui représente l'emplacement de la fin de l'élément de code. | |
Extender | Retourne l'extendeur demandé s'il est disponible pour cet objet CodeElement2.Non implémenté en Visual C#. | |
ExtenderCATID | Obtient l'identificateur de catégorie (CATID) d'extendeur de l'objet CodeElement2.Non implémenté en Visual C#. | |
ExtenderNames | Obtient la liste des extendeurs disponibles pour l'objet CodeElement2.Non implémenté en Visual C#. | |
FullName | Obtient le chemin d'accès complet et le nom du fichier de l'objet CodeElement2. | |
InfoLocation | Obtient les fonctionnalités du modèle de code. | |
IsCodeType | Obtient une valeur indiquant si un objet CodeType peut être obtenu ou non à partir de l'objet CodeElement2. | |
Kind | Obtient une énumération qui définit le type d'élément de code. | |
Language | Obtient le langage de programmation utilisé pour créer CodeElement2. | |
Name | Obtient ou définit le nom de l'objet CodeElement2. | |
ProjectItem | Obtient l'objet ProjectItem associé à l'objet CodeElement. | |
StartPoint | Obtient un objet TextPoint qui définit le début de CodeElement2. |
Début
Méthodes
Nom | Description | |
---|---|---|
GetEndPoint | Obtient un objet TextPoint qui marque la fin de la définition de l'élément de code. | |
GetStartPoint | Obtient un objet TextPoint qui marque le début de la définition de l'élément de code. | |
RenameSymbol | Modifie le nom déclaré d'un objet et met à jour toutes les références de code à l'objet dans la portée du projet actuel. |
Début
Notes
Un élément de code peut être n'importe quel fragment de code, mais généralement, il existe un objet CodeElement2 pour chaque définition ou syntaxe déclarative dans un langage. Cela signifie que pour la plupart des définitions ou déclarations de niveau supérieur d'un fichier, ou pour toute forme syntaxique d'une définition de classe, etc., il existe un objet CodeElement2 correspondant.
Notes
Les valeurs d'éléments de modèle de code, tels que des classes, des structures, des fonctions, des attributs, des délégués, etc., peuvent être non déterminables après certains types de modifications, ce qui signifie qu'il n'est pas certain que leurs valeurs resteront inchangées.Pour plus d'informations, consultez la section Les valeurs d'élément de modèle de code peuvent être modifiées de la rubrique Découverte de code à l'aide du modèle de code (Visual Basic).
Exemples
[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);
}
}
Voir aussi
Référence
Autres ressources
Comment : compiler et exécuter les exemples de code du modèle objet Automation
Découverte de code à l'aide du modèle de code (Visual Basic)