Compartilhar via


Propriedade CodeImport.IsCodeType

Obtém um valor indicando ou não um CodeType objeto pode ser obtido a partir de CodeImport objeto.

Namespace:  EnvDTE80
Assembly:  EnvDTE80 (em EnvDTE80.dll)

Sintaxe

'Declaração
ReadOnly Property IsCodeType As Boolean
    Get
bool IsCodeType { get; }
property bool IsCodeType {
    bool get ();
}
abstract IsCodeType : bool
function get IsCodeType () : boolean

Valor de propriedade

Tipo: System.Boolean
Um valor booleano que é true se um CodeType objeto pode ser obtido a partir de CodeImport objeto; Caso contrário, false.

Implementações

CodeElement.IsCodeType

Comentários

Se for true, e em seguida, você pode consultar a interface ou lançá-lo para um CodeType objeto. This is true when Kind is vsCMElementClass, vsCMElementInterface, vsCMElementDelegate, vsCMElementStruct, or vsCMElementEnum.

ObservaçãoObservação

Os valores dos 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 alteradas nas Descobrindo o Código usando o modelo de Código (Visual Basic).

Exemplos

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
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);
    }
}

Segurança do .NET Framework

Consulte também

Referência

CodeImport Interface

Sobrecargas IsCodeType

Namespace EnvDTE80

Outros recursos

Como: compilar e Executar a automação de exemplos de Código do modelo de objeto