DslDefinitionModelDeleteClosure.ShouldVisitRolePlayer 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
如果应在遍历期间访问与 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
在关系中扮演目标角色的模型元素