Freigeben über


ProjectItems-Schnittstelle

Aktualisiert: November 2007

Enthält ProjectItem-Objekte, die die einzelnen Elemente des Projekts darstellen.

Namespace:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)

Syntax

<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

Hinweise

Diese Auflistung besteht aus einer hierarchischen (geschachtelten) Struktur kaskadierter ProjectItems-Auflistungen, die die Elemente in den einzelnen Projekten darstellen.

Auf diese Auflistung können Sie mit Solution.Item().ProjectItems verweisen.

Hinweis:

In Visual Studio .NET 2003 und Visual Studio 2005 ist für die Project.ProjectItems-Auflistung für Visual C++ keine besondere Behandlung mehr erforderlich. Während in der ProjectItems-Auflistung von Visual C++ alle Visual C++-Projektdateien zuvor in einer unstrukturierten Liste gespeichert wurden, sind die Dateien jetzt wie in den anderen Programmiersprachen hierarchisch gespeichert.

Da diese Änderung sich auf den vorhandenen Code auswirken kann, gibt es eine Möglichkeit, das alte Verhalten in dem neuen projektspezifischen Objektmodell zu emulieren, wenn die Project.ProjectItems-Auflistung indiziert werden soll, um das Vorhandensein einer Datei im Projekt zu ermitteln. Der Hauptunterschied besteht darin, dass Sie jetzt zum DTE-Objektmodell zurückkehren können, indem .Object für ein Visual C++-Objekt aufgerufen wird.

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

Beispiele

' 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

Siehe auch

Referenz

ProjectItems-Member

EnvDTE-Namespace

Weitere Ressourcen

Steuern von Projekten und Projektmappen

Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell