Interface CodeElement2

Representa um elemento de código ou a construção de 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 (Herdado de CodeElement.)
Propriedade pública Children Obtém uma coleção de objetos contidos nisso CodeElement2.
Propriedade pública Collection (Herdado de CodeElement.)
Propriedade pública Collection Obtém o CodeElements coleção contendo o CodeElement2 que ofereça suporte a essa propriedade.
Propriedade pública DTE (Herdado de CodeElement.)
Propriedade pública DTE Obtém o objeto de extensibilidade de nível superior.
Propriedade pública ElementID Obtém um valor que identifica com exclusividade o elemento.Não implementado no Visual C#.
Propriedade pública EndPoint (Herdado de CodeElement.)
Propriedade pública EndPoint Obtém o ponto do texto que é o local do final do item de código.
Propriedade pública Extender[String] (Herdado de CodeElement.)
Propriedade pública Extender[String] Retorna o extensor solicitado se estiver disponível para este CodeElement2 objeto.Não implementado no Visual C#.
Propriedade pública ExtenderCATID (Herdado de CodeElement.)
Propriedade pública ExtenderCATID Obtém a ID da categoria de extensor CATID () para o CodeElement2 objeto.Não implementado no Visual C#.
Propriedade pública ExtenderNames (Herdado de CodeElement.)
Propriedade pública ExtenderNames Obtém uma lista de extensores disponíveis para o CodeElement2 objeto.Não implementado no Visual C#.
Propriedade pública FullName (Herdado de CodeElement.)
Propriedade pública FullName Obtém o caminho completo e o nome do CodeElement2 arquivo do objeto.
Propriedade pública InfoLocation (Herdado de CodeElement.)
Propriedade pública InfoLocation Obtém os recursos do modelo de código.
Propriedade pública IsCodeType (Herdado de CodeElement.)
Propriedade pública IsCodeType Obtém ou não um CodeType objeto pode ser obtido com o CodeElement2 objeto.
Propriedade pública Kind (Herdado de CodeElement.)
Propriedade pública Kind Obtém uma enumeração que define o tipo de elemento de código.
Propriedade pública Language (Herdado de CodeElement.)
Propriedade pública Language Obtém a linguagem de programação usada para o autor do CodeElement2.
Propriedade pública Name (Herdado de CodeElement.)
Propriedade pública Name Obtém ou define o nome da CodeElement2 objeto.
Propriedade pública ProjectItem (Herdado de CodeElement.)
Propriedade pública ProjectItem Obtém o ProjectItem objeto associado com o CodeElement objeto.
Propriedade pública StartPoint (Herdado de CodeElement.)
Propriedade pública StartPoint Obtém um TextPoint objeto que define o início do CodeElement2.

Superior

Métodos

  Nome Descrição
Método público GetEndPoint(vsCMPart) (Herdado de CodeElement.)
Método público GetEndPoint(vsCMPart) Obtém um TextPoint que marca o final da definição de elemento do código objeto.
Método público GetStartPoint(vsCMPart) (Herdado de CodeElement.)
Método público GetStartPoint(vsCMPart) Obtém um TextPoint que marca o início da definição de elemento do código objeto.
Método público RenameSymbol Altera o nome declarado de um objeto e atualiza todas as referências de código para o objeto dentro do escopo do projeto atual.

Superior

Comentários

Um elemento de código pode ser qualquer fragmento de código, mas em geral, há um CodeElement2 o objeto para cada definição ou a sintaxe declarativa em um idioma.Isso significa que, para mais definições de nível superior ou declarações em um arquivo ou de qualquer forma sintática em uma definição de classe e assim por diante, há um correspondente CodeElement2 objeto.

ObservaçãoObservação

Os valores de elementos de modelo de código, como classes, estruturas, funções, atributos, delegados e assim por diante podem ser não-determinísticos depois de fazer determinados tipos de edições, o que significa que seus valores não confie sempre permanecer o mesmo.Para obter mais informações, consulte a seção valores de elemento de modelo de código podem ser alterada de Descobrindo o 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 de modelo de objeto de automação

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

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