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.
Примечание. |
---|
В 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
См. также
Ссылки
Другие ресурсы
Управление проектами и решениями
Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации