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 (Odziedziczone z CodeElement).
Właściwość publiczna Children Zwraca kolekcję obiektów zawartych w ramach tego CodeElement2.
Właściwość publiczna Collection (Odziedziczone z CodeElement).
Właściwość publiczna Collection Pobiera CodeElements kolekcji zawierających CodeElement2 obsługującej tę właściwość.
Właściwość publiczna DTE (Odziedziczone z CodeElement).
Właściwość publiczna DTE Pobiera obiekt rozszerzalności 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 (Odziedziczone z CodeElement).
Właściwość publiczna EndPoint Pobiera punkt tekstu, który znajduje się na końcu ppkt kodu.
Właściwość publiczna Extender[String] (Odziedziczone z CodeElement).
Właściwość publiczna Extender[String] Zwraca żądane urządzenie Extender, jeśli jest on dostępny dla tej CodeElement2 obiektu.Nie zaimplementowane w środowisku Visual C#.
Właściwość publiczna ExtenderCATID (Odziedziczone z CodeElement).
Właściwość publiczna ExtenderCATID Pobiera identyfikator kategorii urządzenia Extender (Identyfikator CATID) dla CodeElement2 obiektu.Nie zaimplementowane w środowisku Visual C#.
Właściwość publiczna ExtenderNames (Odziedziczone z CodeElement).
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 (Odziedziczone z CodeElement).
Właściwość publiczna FullName Pobiera pełną ścieżkę i nazwę CodeElement2 pliku obiektu.
Właściwość publiczna InfoLocation (Odziedziczone z CodeElement).
Właściwość publiczna InfoLocation Pobiera możliwości modelu kodu.
Właściwość publiczna IsCodeType (Odziedziczone z CodeElement).
Właściwość publiczna IsCodeType Pobiera czy też nie CodeType obiektu, można otrzymać od CodeElement2 obiektu.
Właściwość publiczna Kind (Odziedziczone z CodeElement).
Właściwość publiczna Kind Pobiera wyliczenie, który definiuje typ elementu kodu.
Właściwość publiczna Language (Odziedziczone z CodeElement).
Właściwość publiczna Language Pobiera język programowania, który jest używany do autora CodeElement2.
Właściwość publiczna Name (Odziedziczone z CodeElement).
Właściwość publiczna Name Zwraca lub ustawia nazwę CodeElement2 obiektu.
Właściwość publiczna ProjectItem (Odziedziczone z CodeElement).
Właściwość publiczna ProjectItem Pobiera ProjectItem obiektu skojarzonego z CodeElement obiektu.
Właściwość publiczna StartPoint (Odziedziczone z CodeElement).
Właściwość publiczna StartPoint Pobiera TextPoint obiektu, który definiuje początek CodeElement2.

Początek

Metody

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

Początek

Uwagi

Element kodu może być dowolnego fragmentu kodu, ale jest ogólnie, CodeElement2 obiektu dla każdej definicji lub deklaracyjne składni języka.Oznacza to, że najbardziej definicje najwyższego poziomu lub deklaracje w pliku lub dla każdej postaci składni w definicji klasy i tak dalej, istnieje odpowiadającego CodeElement2 obiektu.

[!UWAGA]

Po dokonaniu niektórych rodzajów modyfikacji, co oznacza, że ich wartości nie może polegać na zawsze pozostawać taki sam może być nie deterministyczny wartości elementów modelu kodu, takich jak klasy, strukturach, funkcje, atrybuty, delegatów i tak dalej.Aby uzyskać więcej informacji, zobacz sekcję wartości elementu modelu kod można zmienić w Odkrywanie kod przy użyciu modelu kodu (Visual Basic).

Przykłady

[Programu 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

Jak: skompilować i uruchomić przykłady kodu modelu obiektu automatyzacji

Odkrywanie kod przy użyciu modelu kodu (Visual Basic)

Odkrywanie kod przy użyciu modelu kodu (Visual C#)