DslDefinitionModelDeleteClosure.ShouldVisitRolePlayer 方法

定义

如果应在遍历期间访问与 ElementLink 相关联的特定角色扮演者,则调用此方法来询问筛选器。 这会重写生成的 ShouldVisitRolePlayer () 方法,该方法检查 ElementLink 上的 PropagateDelete 属性,以确定是否访问关联的角色扮演者。 在这种情况下,Microsoft.visualstudio.modeling.dsldesigner.relationshipport (绘制为小正方形,其中关系连接到类)的形状未随关系一起删除。 原因在于,用于连接 Microsoft.visualstudio.modeling.dsldesigner.relationshipport 的链接 () 到 Microsoft.visualstudio.modeling.dsldesigner.roleconnector.multiplicity (的形状,) 是名为 Microsoft.visualstudio.modeling.diagrams.linkconnectstonode.link 的 ElementLink 的子类型。 此链接类型的实例用于将各种 NodeShapes 与 LinkShapes 相关联,因此,它们不传播删除,不过,在这种情况下,它应为 Microsoft.visualstudio.modeling.dsldesigner.relationshipport。 Microsoft.visualstudio.modeling.dsldesigner.inheritanceport 中存在相同的问题,例如 Microsoft.visualstudio.modeling.dsldesigner.relationshipport 扩展 Microsoft.visualstudio.modeling.dsldesigner.toggleport。

对于在删除过程中访问的每个 ElementLink,将调用此方法。 如果相关链接是 Microsoft.visualstudio.modeling.diagrams.linkconnectstonode.link 的实例,并且 roleplayer 为 Microsoft.visualstudio.modeling.dsldesigner.toggleport,则可能不再需要端口形状。 通过检查向目标角色扮演者留下的链接数,此方法返回 VisitorFilterResult。如果只有一个指向端口的链接,则为 "是"; 否则为。 这可确保在删除指向节点的最后一个链接后,还会删除该端口形状。

public:
 override Microsoft::VisualStudio::Modeling::VisitorFilterResult ShouldVisitRolePlayer(Microsoft::VisualStudio::Modeling::ElementWalker ^ walker, Microsoft::VisualStudio::Modeling::ModelElement ^ sourceElement, Microsoft::VisualStudio::Modeling::ElementLink ^ elementLink, Microsoft::VisualStudio::Modeling::DomainRoleInfo ^ targetDomainRole, Microsoft::VisualStudio::Modeling::ModelElement ^ targetRolePlayer);
public override Microsoft.VisualStudio.Modeling.VisitorFilterResult ShouldVisitRolePlayer (Microsoft.VisualStudio.Modeling.ElementWalker walker, Microsoft.VisualStudio.Modeling.ModelElement sourceElement, Microsoft.VisualStudio.Modeling.ElementLink elementLink, Microsoft.VisualStudio.Modeling.DomainRoleInfo targetDomainRole, Microsoft.VisualStudio.Modeling.ModelElement targetRolePlayer);
override this.ShouldVisitRolePlayer : Microsoft.VisualStudio.Modeling.ElementWalker * Microsoft.VisualStudio.Modeling.ModelElement * Microsoft.VisualStudio.Modeling.ElementLink * Microsoft.VisualStudio.Modeling.DomainRoleInfo * Microsoft.VisualStudio.Modeling.ModelElement -> Microsoft.VisualStudio.Modeling.VisitorFilterResult
Public Overrides Function ShouldVisitRolePlayer (walker As ElementWalker, sourceElement As ModelElement, elementLink As ElementLink, targetDomainRole As DomainRoleInfo, targetRolePlayer As ModelElement) As VisitorFilterResult

参数

walker
ElementWalker

遍历模型的 ElementWalker

sourceElement
ModelElement

扮演源角色的模型元素

elementLink
ElementLink

构成相关角色扮演者的关系的元素链接

targetDomainRole
DomainRoleInfo

目标角色的 DomainRoleInfo

targetRolePlayer
ModelElement

在关系中扮演目标角色的模型元素

返回

VisitorFilterResult

实现

适用于