CodeElement2 (Interfaz)
Representa un elemento de código o una construcción en un archivo de código fuente.
Espacio de nombres: EnvDTE80
Ensamblado: EnvDTE80 (en EnvDTE80.dll)
Sintaxis
'Declaración
<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
El tipo CodeElement2 expone los siguientes miembros.
Propiedades
Nombre | Descripción | |
---|---|---|
Children | Obtiene una colección de objetos contenidos dentro de CodeElement2. | |
Collection | Obtiene la colección de CodeElements que contiene el elemento CodeElement2 compatible con esta propiedad. | |
DTE | Obtiene el objeto de extensibilidad de nivel superior. | |
ElementID | Obtiene un valor que identifica de manera única el elemento.No se ha implementado en Visual C#. | |
EndPoint | Obtiene el punto de texto que es la ubicación del final del elemento de código. | |
Extender | Devuelve el objeto Extender solicitado si está disponible para este objeto CodeElement2.No se ha implementado en Visual C#. | |
ExtenderCATID | Obtiene el identificador de categoría (CATID) del extensor para el objeto CodeElement2.No se ha implementado en Visual C#. | |
ExtenderNames | Obtiene una lista de extensores disponibles para el objeto CodeElement2.No se ha implementado en Visual C#. | |
FullName | Obtiene la ruta de acceso completa y el nombre de archivo del objeto CodeElement2. | |
InfoLocation | Obtiene las funciones del modelo de código. | |
IsCodeType | Indica si se puede obtener un objeto CodeType a partir del objeto CodeElement2. | |
Kind | Obtiene una enumeración que define el tipo de elemento de código. | |
Language | Obtiene el lenguaje de programación que se utiliza para crear el CodeElement2. | |
Name | Obtiene o establece el nombre del objeto CodeElement2. | |
ProjectItem | Obtiene el objeto ProjectItem asociado al objeto CodeElement. | |
StartPoint | Obtiene un objeto TextPoint que define el comienzo del CodeElement2. |
Arriba
Métodos
Nombre | Descripción | |
---|---|---|
GetEndPoint | Obtiene un objeto TextPoint que marca el final de la definición del elemento de código. | |
GetStartPoint | Obtiene un objeto TextPoint que marca el comienzo de la definición del elemento de código. | |
RenameSymbol | Cambia el nombre declarado de un objeto y actualiza todas las referencias de código al objeto dentro del ámbito del proyecto actual. |
Arriba
Comentarios
Un elemento de código puede ser cualquier fragmento de código, pero por lo general existirá un objeto CodeElement2 para cada definición o sintaxis declarativa de un lenguaje. Esto significa que existe un objeto CodeElement2 para casi todas las definiciones o declaraciones de nivel superior presentes en un archivo, o para cualquier forma sintáctica de una definición de clase, y así sucesivamente.
Nota
Los valores de los elementos de modelo de código como clases, structs, funciones, atributos, delegados, etc., pueden ser no deterministas una vez realizados determinados tipos de modificaciones; esto significa que no se puede confiar en que sus valores se mantengan siempre igual.Para obtener más información, vea la sección Los valores de elementos de modelo de código pueden cambiar, en Detectar código utilizando el modelo de código (Visual Basic).
Ejemplos
[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);
}
}
Vea también
Referencia
Otros recursos
Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización
Detectar código utilizando el modelo de código (Visual Basic)