Udostępnij za pośrednictwem


Metoda ElementWalker.ShouldVisitLinkAgain —

Wartość true, jeśli łącze była odwiedzana przed currentElement, (jeden z jego roleplayers) został odwiedził.

Przestrzeń nazw:  Microsoft.VisualStudio.Modeling
Zestaw:  Microsoft.VisualStudio.Modeling.Sdk.12.0 (w Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)

Składnia

'Deklaracja
Protected Function ShouldVisitLinkAgain ( _
    link As ElementLink, _
    currentElement As ModelElement _
) As Boolean
protected bool ShouldVisitLinkAgain(
    ElementLink link,
    ModelElement currentElement
)

Parametry

Wartość zwracana

Typ: System.Boolean

Uwagi

Patrząc na powiązanych elementów danego currentElement, jeśli okaże się łącze, które zostało został umieszczony w kolejce dla odwiedzających, ta funkcja będzie powiedzieć, jeśli musi być wizytowane ponownie.To jest, jeśli łącze ma zostały odwiedzone przed currentElement, (jeden z jego roleplayers) został odwiedził.Dla zamknięcia walkers, możemy zagwarantować, że łącza będą kontrolowane tylko po roleplayers są odwiedzane (technicznie, możemy zagwarantować InternalElementList będzie zawierać łącza po roleplayers).Należy wziąć pod uwagę w tym scenariuszu: mamy a element, który jest roleplayer w przypadku relacji 2, AHasBs i CHasAs.Podczas przechodzenia zamknięcia a jest najpierw podchodzić z b poprzez AHasBs.Jednakże to nie prop-delete, tak nie jest wizytowane, ale jest wizytowane AHasBs.W dalszej części traversal a jest podchodzić z c via CHasAs.W tym czasie a jest wizytowane, ponieważ ma on prop delete.Teraz możemy uzyskać przypadek, w którym AHasBs był odwiedził przed jednym z jego roleplayers (A) był odwiedził.Aby rozwiązać ten problem, jeżeli walkers stwierdzą, że łącze zostało odwiedził (lub zostały raczej za odwiedziny został umieszczony w kolejce), należy sprawdzić, jeśli powinny być wizytowane ponownie (sprawdzić, jeśli została już wcześniej przed currentElement).Jeśli tak, to należy usunąć łącze z InternalElementList, przy użyciu metod MarkForRemovalFromInternalElementList i RemoveMarkedElements i dodać ją do kolejki, które mają być wizytowane ponownie.

Zabezpieczenia programu .NET Framework

Zobacz też

Informacje

ElementWalker Klasa

Przestrzeń nazw Microsoft.VisualStudio.Modeling