Sdílet prostřednictvím


CodeElement2 – rozhraní

Představuje prvek kódu nebo konstrukce ve zdrojovém souboru.

Obor názvů:  EnvDTE80
Sestavení:  EnvDTE80 (v EnvDTE80.dll)

Syntaxe

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

Typ CodeElement2 zveřejňuje následující členy.

Vlastnosti

  Název Popis
Veřejná vlastnost Children Získá kolekci objektů obsažených v této CodeElement2.
Veřejná vlastnost Collection Získá CodeElements obsahující kolekci CodeElement2 , který podporuje tuto vlastnost.
Veřejná vlastnost DTE Získá objekt nejvyšší úrovně rozšiřitelnosti.
Veřejná vlastnost ElementID Získá hodnotu, která jednoznačně identifikuje prvek.Není implementováno v jazyce Visual C#.
Veřejná vlastnost EndPoint Získá text bodu, který je umístěn na konec kódu položky.
Veřejná vlastnost Extender Požadovaná zařízení Extender vrátí, pokud je k dispozici pro tento CodeElement2 objektu.Není implementováno v jazyce Visual C#.
Veřejná vlastnost ExtenderCATID ID kategorie zařízení Extender (CATID) získá CodeElement2 objektu.Není implementováno v jazyce Visual C#.
Veřejná vlastnost ExtenderNames Získá seznam dostupných zařízení Extender pro CodeElement2 objektu.Není implementováno v jazyce Visual C#.
Veřejná vlastnost FullName Získá název a úplnou cestu CodeElement2 soubor objektu.
Veřejná vlastnost InfoLocation Získá schopnosti modelu kódu.
Veřejná vlastnost IsCodeType Získá zda CodeType objektu lze získat CodeElement2 objektu.
Veřejná vlastnost Kind Získá výčtu, který určuje typ prvku kódu.
Veřejná vlastnost Language Programovací jazyk používaný získává autorovi CodeElement2.
Veřejná vlastnost Name Získá nebo nastaví název objektu CodeElement2.
Veřejná vlastnost ProjectItem Získá ProjectItem objekt přidružený CodeElement objektu.
Veřejná vlastnost StartPoint Získá TextPoint objektu, který definuje začátek CodeElement2.

Nahoru

Metody

  Název Popis
Veřejná metoda GetEndPoint Získá TextPoint objekt, který označuje konec definice prvku kódu.
Veřejná metoda GetStartPoint Získá TextPoint objekt, který označuje začátek definice prvku kódu.
Veřejná metoda RenameSymbol Změní název objektu deklarovaného a aktualizuje všechny kód odkazy na objekt v rámci aktuálního projektu.

Nahoru

Poznámky

Prvek kódu může být libovolný fragment kódu, ale obecně platí, že je CodeElement2 objekt pro každou definici nebo deklarativní syntaxe jazyka.To znamená, že pro většinu definice nejvyšší úrovně nebo prohlášení v souboru nebo syntaktické formuláře v definici třídy a tak dále, existuje odpovídající CodeElement2 objektu.

[!POZNÁMKA]

Není deterministický může být po provedení určité typy úprav, což znamená, že jejich hodnoty nelze dovolávat vždy zůstat stejné hodnoty prvků modelu kód jako třídy, struktury, funkce, atributy, delegátů a tak dále.Další informace naleznete v části Změna hodnoty prvků modelu kód Zjišťování kódu pomocí modelu kódu (Visual Basic).

Příklady

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

Viz také

Referenční dokumentace

EnvDTE80 – obor názvů

Další zdroje

Postupy: Kompilace a spuštění příkladů kódu objektu automatizace

Zjišťování kódu pomocí modelu kódu (Visual Basic)

Zjišťování kódu pomocí modelu kódu (Visual C#)