本文整理汇总了C#中HierarchyNode.RecursiveForEach方法的典型用法代码示例。如果您正苦于以下问题:C# HierarchyNode.RecursiveForEach方法的具体用法?C# HierarchyNode.RecursiveForEach怎么用?C# HierarchyNode.RecursiveForEach使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HierarchyNode
的用法示例。
在下文中一共展示了HierarchyNode.RecursiveForEach方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RecursiveForEachWalksAllChildrenAndParent
public void RecursiveForEachWalksAllChildrenAndParent()
{
int children = 3;
MockVSHierarchy hierarchy = new MockVSHierarchy(children);
MockVsSolution solution = new MockVsSolution(hierarchy);
HierarchyNode node = new HierarchyNode(solution);
int i = 0;
node.RecursiveForEach(delegate(HierarchyNode child)
{
Trace.WriteLine(child.Name);
i++;
});
Assert.AreEqual((children + 1), i, "Incorrect number of nodes walked");
}
示例2: LoadTypesFromSolution
private void LoadTypesFromSolution(Dictionary<string, Type> availableTypes,
IServiceProvider provider,
Project dteProject)
{
IVsSolution solution = provider.GetService(typeof(SVsSolution)) as IVsSolution;
if (solution != null)
{
List<EnvDTE.Project> projectList = new List<Project>();
HierarchyNode solutionHierarchy = new HierarchyNode(solution);
solutionHierarchy.RecursiveForEach(delegate(HierarchyNode child)
{
// recurse if this node is a Solution Folder
if (child.TypeGuid != Microsoft.Practices.VisualStudio.Helper.Constants.SolutionFolderGuid)
{
// If this is a project add it to the list
EnvDTE.Project childProject = child.ExtObject as EnvDTE.Project;
if (childProject != null)
projectList.Add(childProject);
}
}
);
LoadTypesFromProjects(projectList, availableTypes, provider, dteProject);
}
}
示例3: TraverseHierarchyNode
private void TraverseHierarchyNode(HierarchyNode node)
{
node.RecursiveForEach(delegate(HierarchyNode child)
{
// recurse if this node is a Solution Folder
if (child.TypeGuid != SolutionFolderGuid)
{
// If this is a project, add the mapping
if (child.ExtObject is EnvDTE.Project)
{
Collection<Role> roles = GetRoles(child.ExtObject as Project);
if (child.ProjectGuid != Guid.Empty)
{
ProjectMappingEntry mapping = new ProjectMappingEntry(child.ProjectGuid, ProjectPath, roles, child.Name);
manager.AddProjectMappingEntry(mappingTableName, mapping);
this.Trace(Resources.MappingTableAddedMessage, TraceEventType.Information, child.Name, mappingTableName, roles.Count);
}
}
}
});
}