Interface CodeElement2
Representa um elemento de código ou uma construção em um arquivo de origem.
Namespace: EnvDTE80
Assembly: EnvDTE80 (em EnvDTE80.dll)
Sintaxe
'Declaração
<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
O tipo CodeElement2 expõe os membros a seguir.
Propriedades
Nome | Descrição | |
---|---|---|
Children | Obtém uma coleção de objetos contidos nesse CodeElement2. | |
Collection | Obtém a coleção de CodeElements que contém CodeElement2 que da suporte a esta propriedade. | |
DTE | Obtém o objeto de nível superior de extensibilidade. | |
ElementID | Obtém um valor que identifica exclusivamente o elemento.Não implementado no Visual C #. | |
EndPoint | Obtém o ponto de texto que é o local de extremidade do item de código. | |
Extender | Retorna a taxa de proporção solicitado está disponível para este objeto de CodeElement2 .Não implementado no Visual C #. | |
ExtenderCATID | Obtém a ID da categoria de CATID taxa de proporção () para o objeto de CodeElement2 .Não implementado no Visual C #. | |
ExtenderNames | Obtém uma lista de prolongamentos disponíveis para o objeto de CodeElement2 .Não implementado no Visual C #. | |
FullName | Obtém o caminho completo e o nome do arquivo de objeto de CodeElement2 . | |
InfoLocation | Obtém os recursos do modelo de código. | |
IsCodeType | Obtém se um objeto de CodeType pode ser obtido do objeto de CodeElement2 . | |
Kind | Obtém uma enumeração que define o tipo de elemento de código. | |
Language | Obtém a linguagem de programação que é usada para criar CodeElement2. | |
Name | Obtém ou define o nome do objeto de CodeElement2 . | |
ProjectItem | Obtém o objeto de ProjectItem associado ao objeto de CodeElement . | |
StartPoint | Obtém um objeto de TextPoint que define o início de CodeElement2. |
Superior
Métodos
Nome | Descrição | |
---|---|---|
GetEndPoint | Obtém um objeto de TextPoint que marca o fim da definição do elemento de código. | |
GetStartPoint | Obtém um objeto de TextPoint que marca o início da definição do elemento de código. | |
RenameSymbol | Altera o nome declarado de um objeto e atualiza todas as referências de código ao objeto no escopo do projeto atual. |
Superior
Comentários
Um elemento de código pode ser qualquer fragmento de código, mas geralmente, há um objeto de CodeElement2 para cada definição ou sintaxe declarativa em um idioma. Isso significa que para a maioria ou definições de declarações de nível superior em um arquivo, ou para qualquer forma sintático em uma definição de classe, e assim por diante, há um objeto correspondente de CodeElement2 .
Dica
Os valores de código de modelagem elementos como classes, estruturas, funções, atributos, representantes, e assim por diante podem ser não determinísticas depois de fazer determinados tipos as edições do, o que significa que seus valores não podem ser confiáveis em para permanecer sempre os mesmos.Para obter mais informações, veja que os valores do elemento do modelo de código da seção podem ser alteradas em Descobrindo código usando o modelo de código (Visual Basic).
Exemplos
[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);
}
}
Consulte também
Referência
Outros recursos
Como compilar e executar os exemplos de código do modelo de objeto Automation