Partager via


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
Propriété publique Children (Hérité de CodeElement.)
Propriété publique Children Obtient une collection d'objets contenus dans CodeElement2.
Propriété publique Collection (Hérité de CodeElement.)
Propriété publique Collection Obtient la collection CodeElements qui contient le CodeElement2 qui prend en charge cette propriété.
Propriété publique DTE (Hérité de CodeElement.)
Propriété publique DTE Obtient l'objet d'extensibilité de niveau supérieur.
Propriété publique ElementID Obtient une valeur qui identifie l'élément de manière unique.Non implémenté en Visual C#.
Propriété publique EndPoint (Hérité de CodeElement.)
Propriété publique EndPoint Obtient le point de texte qui représente l'emplacement de la fin de l'élément de code.
Propriété publique Extender[String] (Hérité de CodeElement.)
Propriété publique Extender[String] Retourne l'extendeur demandé s'il est disponible pour cet objet CodeElement2.Non implémenté en Visual C#.
Propriété publique ExtenderCATID (Hérité de CodeElement.)
Propriété publique ExtenderCATID Obtient l'identificateur de catégorie (CATID) d'extendeur de l'objet CodeElement2.Non implémenté en Visual C#.
Propriété publique ExtenderNames (Hérité de CodeElement.)
Propriété publique ExtenderNames Obtient la liste des extendeurs disponibles pour l'objet CodeElement2.Non implémenté en Visual C#.
Propriété publique FullName (Hérité de CodeElement.)
Propriété publique FullName Obtient le chemin d'accès complet et le nom du fichier de l'objet CodeElement2.
Propriété publique InfoLocation (Hérité de CodeElement.)
Propriété publique InfoLocation Obtient les fonctionnalités du modèle de code.
Propriété publique IsCodeType (Hérité de CodeElement.)
Propriété publique IsCodeType Obtient une valeur indiquant si un objet CodeType peut être obtenu ou non à partir de l'objet CodeElement2.
Propriété publique Kind (Hérité de CodeElement.)
Propriété publique Kind Obtient une énumération qui définit le type d'élément de code.
Propriété publique Language (Hérité de CodeElement.)
Propriété publique Language Obtient le langage de programmation utilisé pour créer CodeElement2.
Propriété publique Name (Hérité de CodeElement.)
Propriété publique Name Obtient ou définit le nom de l'objet CodeElement2.
Propriété publique ProjectItem (Hérité de CodeElement.)
Propriété publique ProjectItem Obtient l'objet ProjectItem associé à l'objet CodeElement.
Propriété publique StartPoint (Hérité de CodeElement.)
Propriété publique StartPoint Obtient un objet TextPoint qui définit le début de CodeElement2.

Début

Méthodes

  Nom Description
Méthode publique GetEndPoint(vsCMPart) (Hérité de CodeElement.)
Méthode publique GetEndPoint(vsCMPart) Obtient un objet TextPoint qui marque la fin de la définition de l'élément de code.
Méthode publique GetStartPoint(vsCMPart) (Hérité de CodeElement.)
Méthode publique GetStartPoint(vsCMPart) Obtient un objet TextPoint qui marque le début de la définition de l'élément de code.
Méthode publique 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

EnvDTE80, espace de noms

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)

Découverte de code à l'aide du modèle de code (Visual C#)