Propriedade CodeElement.IsCodeType
Indica se ou não um objeto CodeType pode ser obtido no objeto CodeElement.
Namespace: EnvDTE
Assembly: EnvDTE (em EnvDTE. dll)
Sintaxe
ReadOnly Property IsCodeType As Boolean
Dim instance As CodeElement
Dim value As Boolean
value = instance.IsCodeType
bool IsCodeType { get; }
property bool IsCodeType {
bool get ();
}
function get IsCodeType () : boolean
Valor da propriedade
Tipo: System.Boolean
Um valor Booleano indicando se ou não um objeto CodeType pode ser obtido no objeto CodeElement.
Comentários
True se um objeto CodeType pode ser obtido, caso contrário retorna False.Se for True, você pode consultar a interface ou lançá-lo para um objeto CodeType.Isso é Verdadeiro quando Kind é vsCMElementClass, vsCMElementInterface, vsCMElementDelegate, vsCMElementStructou vsCMElementEnum.
Observaçã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ístico depois de fazer determinados tipos de edições, significando que seus valores não podem ser confiam para sempre permanecer o mesmo.Para obter mais informações, consulte a seção que valores de elemento de modelo de código podem alterar em Descobrir 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);
}
}
Permissões
- Confiar total para o chamador imediato. Este membro não pode ser usado pelo código parcialmente confiável. Para obter mais informações, consulte Usando bibliotecas de códigos parcialmente Confiável.
Consulte também
Referência
Outros recursos
Como: Compilar e executar os exemplos de códigos automação modelo de objeto