Écrivez une méthode récursive pour récupérer tous les espaces de noms d'une application.
' Macro editor
Sub FindAllNamespaces()
Dim cm As CodeModel
cm = DTE.Solution.Projects.Item(1).CodeModel
' Look for all the namespaces in the CodeElements
' of the project.
Dim list As String
Dim ce As CodeElement
For Each ce In cm.CodeElements
If TypeOf ce Is CodeNamespace Then
GetNamespace(CType(ce, CodeNamespace), list)
End If
Next
MsgBox(list)
End Sub
Sub GetNamespace(ByVal ns As CodeNamespace, ByRef list As String)
' Add this namespace to the list.
list &= ns.Name & ControlChars.CrLf
Dim aspace As CodeNamespace
Dim ce As CodeElement
' Look for more namespaces.
For Each ce In ns.Members
If TypeOf ce Is CodeNamespace Then
GetNamespace(CType(ce, CodeNamespace), list)
End If
Next
End Sub