CodeElement2 - интерфейс
Предоставляет элемент или конструкцию кода в исходном файле.
Пространство имен: EnvDTE80
Сборка: EnvDTE80 (в EnvDTE80.dll)
Синтаксис
'Декларация
<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
Тип CodeElement2 предоставляет следующие члены.
Свойства
Имя | Описание | |
---|---|---|
Children | (Унаследовано от CodeElement.) | |
Children | Получает коллекцию объектов, содержащихся в данном объекте CodeElement2. | |
Collection | (Унаследовано от CodeElement.) | |
Collection | Возвращает коллекцию CodeElements, содержащую объект CodeElement2, поддерживающий это свойство. | |
DTE | (Унаследовано от CodeElement.) | |
DTE | Возвращает объект расширения верхнего уровня. | |
ElementID | Получает значение, однозначно определяющее элемент.Не реализовано в Visual С#. | |
EndPoint | (Унаследовано от CodeElement.) | |
EndPoint | Возвращает точку в тексте, соответствующую местоположению конца элемента кода. | |
Extender[String] | (Унаследовано от CodeElement.) | |
Extender[String] | Возвращает запрашиваемый расширитель, если он доступен для данного объекта CodeElement2.Не реализовано в Visual С#. | |
ExtenderCATID | (Унаследовано от CodeElement.) | |
ExtenderCATID | Получает идентификатор категории расширителя (CATID) для объекта CodeElement2.Не реализовано в Visual С#. | |
ExtenderNames | (Унаследовано от CodeElement.) | |
ExtenderNames | Получает список доступных расширителей для объекта CodeElement2.Не реализовано в Visual С#. | |
FullName | (Унаследовано от CodeElement.) | |
FullName | Получает полный путь и имя файла объекта CodeElement2. | |
InfoLocation | (Унаследовано от CodeElement.) | |
InfoLocation | Возвращает сведения о возможностях модели кода. | |
IsCodeType | (Унаследовано от CodeElement.) | |
IsCodeType | Получает значение, указывающее, можно ли получить объект CodeType из объекта CodeElement2. | |
Kind | (Унаследовано от CodeElement.) | |
Kind | Получает значение перечисления, определяющее тип элемента кода. | |
Language | (Унаследовано от CodeElement.) | |
Language | Получает язык программирования, используемый при создании объекта CodeElement2. | |
Name | (Унаследовано от CodeElement.) | |
Name | Получает или задает имя объекта CodeElement2. | |
ProjectItem | (Унаследовано от CodeElement.) | |
ProjectItem | Получает объект ProjectItem, связанный с объектом CodeElement. | |
StartPoint | (Унаследовано от CodeElement.) | |
StartPoint | Получает объект TextPoint, определяющий начало элемента CodeElement2. |
В начало страницы
Методы
Имя | Описание | |
---|---|---|
GetEndPoint(vsCMPart) | (Унаследовано от CodeElement.) | |
GetEndPoint(vsCMPart) | Возвращает объект TextPoint, отмечающий конец определения элемента кода. | |
GetStartPoint(vsCMPart) | (Унаследовано от CodeElement.) | |
GetStartPoint(vsCMPart) | Получает объект TextPoint, отмечающий начало определения элемента кода. | |
RenameSymbol | Изменяет объявленное имя объекта и обновляет все ссылки на объект в коде в рамках текущего проекта. |
В начало страницы
Заметки
Элемент кода — это любой фрагмент кода, но обычно в языке существует объект CodeElement2 для каждого определения или декларативного синтаксиса. Это значит, что для большинства определений или объявлений верхнего уровня в файле или для синтаксический формы в определении класса и т. п. существует соответствующий объект CodeElement2.
Примечание
Значения элементов модели кода, таких как классы, структуры, функции, атрибуты, делегаты и т. п., после внесения некоторых изменений могут оказаться неопределенными, иными словами, нельзя рассчитывать, что их значения будут всегда оставаться одинаковыми.Дополнительные сведения см. в разделе "Значения элементов модели кода могут изменяться" в разделе Практическое руководство. Поиск кода при помощи модели кода (Visual Basic).
Примеры
[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);
}
}
См. также
Ссылки
Другие ресурсы
Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации
Практическое руководство. Поиск кода при помощи модели кода (Visual Basic)
Практическое руководство. Поиск кода при помощи модели кода (Visual C#)