Поделиться через


ProjectItems - интерфейс

Обновлен: Ноябрь 2007

Содержит объекты ProjectItem, каждый из которых предоставляет элементы проекта.

Пространство имен:  EnvDTE
Сборка:  EnvDTE (в EnvDTE.dll)

Синтаксис

'Декларация
<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

Заметки

Данная коллекция состоит из иерархической (вложенной) структуры расположенных каскадом коллекций ProjectItems, которые предоставляют элементы каждого проекта.

Для ссылки на эту коллекцию используйте Solution.Item().ProjectItems.

ak940968.alert_note(ru-ru,VS.90).gifПримечание.

В Visual Studio .NET 2003 и Visual Studio 2005, специальная обработка коллекции Project.ProjectItems для Visual C++ больше не требуется. Иными словами, если раньше коллекция ProjectItems Visual C++ сохраняла все файлы проекта Visual C++ в одноуровневом списке, то теперь файлы сохраняются иерархически, как и в других языках программирования.

Поскольку данное изменение может повлиять на существующий код, то при попытке индексирования коллекции Project.ProjectItems чтобы определить, находится ли файл в проекте, можно воспользоваться эмуляцией прежнего поведения в новой модели объектов для определенного проекта. Главным отличием является то, что теперь можно вернуться к модели объектов DTE, вызвав .Object в объекте 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

Примеры

' 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

См. также

Ссылки

ProjectItems - члены

EnvDTE - пространство имен

Другие ресурсы

Управление проектами и решениями

Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации