Compartilhar via


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
Propriedade pública Children Obtém uma coleção de objetos contidos nesse CodeElement2.
Propriedade pública Collection Obtém a coleção de CodeElements que contém CodeElement2 que da suporte a esta propriedade.
Propriedade pública DTE Obtém o objeto de nível superior de extensibilidade.
Propriedade pública ElementID Obtém um valor que identifica exclusivamente o elemento.Não implementado no Visual C #.
Propriedade pública EndPoint Obtém o ponto de texto que é o local de extremidade do item de código.
Propriedade pública Extender Retorna a taxa de proporção solicitado está disponível para este objeto de CodeElement2 .Não implementado no Visual C #.
Propriedade pública ExtenderCATID Obtém a ID da categoria de CATID taxa de proporção () para o objeto de CodeElement2 .Não implementado no Visual C #.
Propriedade pública ExtenderNames Obtém uma lista de prolongamentos disponíveis para o objeto de CodeElement2 .Não implementado no Visual C #.
Propriedade pública FullName Obtém o caminho completo e o nome do arquivo de objeto de CodeElement2 .
Propriedade pública InfoLocation Obtém os recursos do modelo de código.
Propriedade pública IsCodeType Obtém se um objeto de CodeType pode ser obtido do objeto de CodeElement2 .
Propriedade pública Kind Obtém uma enumeração que define o tipo de elemento de código.
Propriedade pública Language Obtém a linguagem de programação que é usada para criar CodeElement2.
Propriedade pública Name Obtém ou define o nome do objeto de CodeElement2 .
Propriedade pública ProjectItem Obtém o objeto de ProjectItem associado ao objeto de CodeElement .
Propriedade pública StartPoint Obtém um objeto de TextPoint que define o início de CodeElement2.

Superior

Métodos

  Nome Descrição
Método público GetEndPoint Obtém um objeto de TextPoint que marca o fim da definição do elemento de código.
Método público GetStartPoint Obtém um objeto de TextPoint que marca o início da definição do elemento de código.
Método público 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

Namespace EnvDTE80

Outros recursos

Como compilar e executar os exemplos de código do modelo de objeto Automation

Descobrindo código usando o modelo de código (Visual Basic)

Descobrindo código usando o modelo de código (Visual C#)