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
- link
Typ: Microsoft.VisualStudio.Modeling.ElementLink
Łącze, które uznano za już został umieszczony w kolejce na tej stronie:
- currentElement
Typ: Microsoft.VisualStudio.Modeling.ModelElement
Bieżący element, którego powiązanych elementów, możemy odwiedzają
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
- Pełne zaufanie do bezpośredniego wywołującego. Tego elementu członkowskiego nie można używać w kodzie częściowo zaufanym. Aby uzyskać więcej informacji, zobacz Używanie bibliotek pochodzących z częściowo zaufanego kodu.