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