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

ProjectItems (Miembros)

EnvDTE (Espacio de nombres)

Otros recursos

Controlar proyectos y soluciones

Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización