ProjectItems (Interfaz)
Actualización: noviembre 2007
Contiene objetos ProjectItem, cada uno de los cuales representa elementos del proyecto.
Espacio de nombres: EnvDTE
Ensamblado: EnvDTE (en EnvDTE.dll)
Sintaxis
<GuidAttribute("8E2F1269-185E-43C7-8899-950AD2769CCF")> _
Public Interface ProjectItems _
Implements IEnumerable
Dim instance As ProjectItems
[GuidAttribute("8E2F1269-185E-43C7-8899-950AD2769CCF")]
public interface ProjectItems : IEnumerable
[GuidAttribute(L"8E2F1269-185E-43C7-8899-950AD2769CCF")]
public interface class ProjectItems : IEnumerable
public interface ProjectItems extends IEnumerable
Comentarios
Esta colección está formada por una estructura jerárquica (anidada) de colecciones ProjectItems en cascada que representan elementos de cada proyecto.
Se hace referencia a esta colección mediante Solution.Item().ProjectItems.
Nota: |
---|
En Visual Studio .NET 2003 y Visual Studio 2005, el control especial de la colección Project.ProjectItems para Visual C++ ya no es necesario. Es decir, mientras que la colección ProjectItems de Visual C++ almacenaba anteriormente todos los archivos de proyecto de Visual C++ en una lista plana, ahora los archivos se almacenan jerárquicamente tal y como son en el resto de lenguajes de programación. |
Como este cambio puede afectar al código ya existente, existe un modo de emular el comportamiento antiguo en el nuevo modelo de objetos específico del proyecto cuando se intenta indizar la colección Project.ProjectItems para determinar si un archivo pertenece o no al proyecto. La principal diferencia es que ahora puede regresar al modelo de objetos DTE mediante la llamada a .Object en un objeto de Visual C++.
Dim proj as VCProject = DTE.ActiveSolutionProjects(0).Object
Dim fileColl as IVCCollection = proj.Files
Dim file as VCFile = fileColl.Item("MyFile.cpp")
Dim projItem as ProjectItem = file.Object
Ejemplos
' Before running, create a new project or open an existing project.
Sub ListProj()
Dim proj As Project = DTE.ActiveSolutionProjects(0)
Dim win As Window = _
DTE.Windows.Item(Constants.vsWindowKindCommandWindow)
ListProjAux(proj.ProjectItems(), 0)
End Sub
Sub ListProjAux(ByVal projitems As ProjectItems, ByVal Level As Integer)
Dim projitem As ProjectItem
For Each projitem In projitems
MsgBox("Project item: " & projitem.Name, Level)
' Recurse if the project item has sub-items...
Dim projitems2 As ProjectItemsprojitems2 = projitem.ProjectItems
Dim notsubcoll As Boolean = projitems2 Is Nothing
If Not notsubcoll Then
ListProjAux(projitems2, Level + 1)
End If
Next
End Sub
Vea también
Referencia
Otros recursos
Controlar proyectos y soluciones
Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización