Udostępnij za pośrednictwem


Interfejs CodeElement2

Reprezentuje element kodu lub konstrukcji w pliku źródłowym.

Przestrzeń nazw:  EnvDTE80
Zestaw:  EnvDTE80 (w EnvDTE80.dll)

Składnia

'Deklaracja
<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 uwidacznia następujące elementy członkowskie.

Właściwości

  Nazwa Opis
Właściwość publiczna Children Pobiera kolekcja obiektów zawartych w tej CodeElement2.
Właściwość publiczna Collection Pobiera CodeElements zawierające Kolekcja CodeElement2 obsługującej tej właściwości.
Właściwość publiczna DTE Pobiera obiekt rozszerzeń najwyższego poziomu.
Właściwość publiczna ElementID Pobiera wartość, która jednoznacznie identyfikuje element.Nie zaimplementowane w środowisku Visual C#.
Właściwość publiczna EndPoint Pobiera punkt tekstu, który jest lokalizację koniec elementu kodu.
Właściwość publiczna Extender Zwraca żądane urządzenie Extender, jeśli jest on dostępny dla tego CodeElement2 obiektu.Nie zaimplementowane w środowisku Visual C#.
Właściwość publiczna ExtenderCATID Pobiera identyfikator kategorii urządzenia Extender (CATID) dla CodeElement2 obiektu.Nie zaimplementowane w środowisku Visual C#.
Właściwość publiczna ExtenderNames Pobiera listę dostępnych urządzeń Extender dla CodeElement2 obiektu.Nie zaimplementowane w środowisku Visual C#.
Właściwość publiczna FullName Pobiera pełną ścieżkę i nazwę CodeElement2 pliku obiektu.
Właściwość publiczna InfoLocation Pobiera możliwości modelu kodu.
Właściwość publiczna IsCodeType Pobiera czy CodeType obiektu można uzyskać z CodeElement2 obiektu.
Właściwość publiczna Kind Pobiera na wyliczenie, który definiuje typ elementu kodu.
Właściwość publiczna Language Pobiera język programowania, który jest używany do autora CodeElement2.
Właściwość publiczna Name Pobiera lub ustawia nazwę CodeElement2 obiektu.
Właściwość publiczna ProjectItem Pobiera ProjectItem obiektu skojarzonego z CodeElement obiektu.
Właściwość publiczna StartPoint Pobiera TextPoint obiektu, który definiuje początek CodeElement2.

Początek

Metody

  Nazwa Opis
Metoda publiczna GetEndPoint Pobiera TextPoint obiekt, który oznacza koniec definicji elementu kodu.
Metoda publiczna GetStartPoint Pobiera TextPoint obiekt, który oznacza początek definicji elementu kodu.
Metoda publiczna RenameSymbol Zmienia nazwę deklarowanych obiektu i aktualizuje wszystkie kod odwołania do obiektu w zakresie bieżącego projektu.

Początek

Uwagi

Element kodu może być każdy fragment kodu, ale na ogół ma CodeElement2 obiektu dla każdej definicji lub deklaracyjne składni w języku.Oznacza to, że dla najbardziej definicje najwyższego poziomu lub deklaracje w pliku lub dla jakiejkolwiek składni w definicji klasy i tak dalej, ma odpowiadającego CodeElement2 obiektu.

[!UWAGA]

Wartości elementów modelu kodu, takich jak klasy, strukturach, funkcje, atrybuty, delegatów i tak dalej mogą być deterministyczny po dokonaniu niektórych rodzajów modyfikacji, co oznacza, że ich wartości nie mogą być powoływane do zawsze pozostają takie same.Aby uzyskać więcej informacji, zobacz sekcję wartości elementu modelu kod można zmienić w Odnajdowanie kodu za pomocą modelu kodu (Visual Basic).

Przykłady

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

Zobacz też

Informacje

Przestrzeń nazw EnvDTE80

Inne zasoby

Porady: kompilowanie i uruchamianie kodu modelu obiektów automatyzacji — przykłady

Odnajdowanie kodu za pomocą modelu kodu (Visual Basic)

Odnajdowanie kodu za pomocą modelu kodu (Visual C#)