启动从一个特殊元素或元素组开始的深度优先的模型遍历。 提供通知,告知元素及其子项的遍历开始和结束。
继承层次结构
System.Object
Microsoft.VisualStudio.Modeling.ElementWalker
Microsoft.VisualStudio.Modeling.DepthFirstElementWalker
Microsoft.VisualStudio.Modeling.DepthFirstElementAndLinkWalker
命名空间: Microsoft.VisualStudio.Modeling
程序集: Microsoft.VisualStudio.Modeling.Sdk.12.0(在 Microsoft.VisualStudio.Modeling.Sdk.12.0.dll 中)
语法
声明
Public Class DepthFirstElementWalker _
Inherits ElementWalker
public class DepthFirstElementWalker : ElementWalker
DepthFirstElementWalker 类型公开以下成员。
构造函数
名称 | 说明 | |
---|---|---|
![]() |
DepthFirstElementWalker(IElementVisitor, IElementVisitorFilter) | 采用 ElementVisitor 的构造函数。这首先默认深度遍历,预定无元素链接的关系图的访问。 |
![]() |
DepthFirstElementWalker(IElementVisitor, IElementVisitorFilter, Boolean) | 采用 ElementVisitor 的构造函数。 |
页首
属性
名称 | 说明 | |
---|---|---|
![]() |
BypassDemandLoading | 遍历时,允许查看器跳过要求的加载 (继承自 ElementWalker。) |
![]() |
Filter | 在遍历过程中,获取或设置可用的 IElementVisitorFilter (继承自 ElementWalker。) |
![]() |
IncludeLinks | 如果查看器对访问器函数的调用包括元素链接则返回 true (继承自 ElementWalker。) |
![]() |
InternalElementList | 获取将被访问元素的内部列表 (继承自 ElementWalker。) |
![]() |
Store | 获取将被访问元素的内部列表 (继承自 ElementWalker。) |
![]() |
Visitor | 在遍历过程中,获取或设置可用的 IElementVisitor (继承自 ElementWalker。) |
页首
方法
名称 | 说明 | |
---|---|---|
![]() |
BeginTraverseElement | 查看器将要访问指定元素和其相关元素时所调用的虚方法。 |
![]() |
DoTraverse | 遍历以指定开始元素开始的模型。 (重写 ElementWalker.DoTraverse(ModelElement)。) |
![]() |
EndTraverseElement | 虚方法指示该查看器已完成遍历到指定元素。 |
![]() |
Equals | 确定指定的对象是否等于当前对象。 (继承自 Object。) |
![]() |
Finalize | 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。) |
![]() |
GetHashCode | 作为默认哈希函数。 (继承自 Object。) |
![]() |
GetRelatedElements | 获取应该访问的立即相邻元素的列表,其顺序是按照房屋的先后。 |
![]() |
GetType | 获取当前实例的 Type。 (继承自 Object。) |
![]() |
MarkForRemovalFromInternalElementList | 标记撤除的一个元素从 InternalElementList。我们首先在末尾标记并稍后移除,以便索引保持有效。当元素标记为已参观时,我们将以哈希珍的形式存储索引,该表告诉我们该元素的访问顺序。如果这些元素按此顺序放置到 InternalElementList 中,则我们可以使用索引轻松找到该元素。是否没有线性搜索将用于查找元素。 (继承自 ElementWalker。) |
![]() |
MarkVisited | 标记已参观的元素 (继承自 ElementWalker。) |
![]() |
MemberwiseClone | 创建当前 Object 的浅表副本。 (继承自 Object。) |
![]() |
RemoveMarkedElements | 删除为撤除标记的元素。在遍历结束时调用,以便在 alreadyVisited 的索引保持有效。 (继承自 ElementWalker。) |
![]() |
Reset | 重置该访问器,以便可以再次开始遍历。这是必需清除一个内部列表之前参观的元素。 (继承自 ElementWalker。) |
![]() |
ShouldVisitLinkAgain | 如果在访问 currentElement(roleplayers 之一)之前访问该链接,则为 true。 (继承自 ElementWalker。) |
![]() |
ToString | 返回表示当前对象的字符串。 (继承自 Object。) |
![]() |
Traverse(ModelElement) | 遍历以指定开始元素开始的模型。 (继承自 ElementWalker。) |
![]() |
Traverse(ICollection<ModelElement>) | 遍历以指定开始元素开始的模型。 (继承自 ElementWalker。) |
![]() |
Visited | 确定给定的元素是否已访问。 (继承自 ElementWalker。) |
页首
备注
可以从此类继承定义查看器。 重写 GetRelatedElements、BeginTraverseElement 和 EndTraverseElement。
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。