Metodo DslDefinitionModelDeleteClosure.ShouldVisitRolePlayer
Questo metodo viene chiamato per richiedere al filtro se un particolare assegnatario di ruolo associato a ElementLink deve essere visualizzato durante l'attraversamento. In questo modo viene eseguito l'override del metodo ShouldVisitRolePlayer() generato, che esamina l'attributo PropagateDelete relativo all'oggetto ElementLink per decidere se visualizzare gli assegnatari di ruolo associati. In questo caso l'oggetto RelationshipPort, ovvero il quadratino in cui una relazione viene connessa a una classe, non è stato eliminato con la relazione. Il motivo è che il collegamento utilizzato per connettere RelationshipPort (una forma) a RoleConnector (altra forma) è un sottotipo di ElementLink, denominato LinkConnectsToNode. Le istanze di questo tipo di collegamento vengono utilizzate per associare vari oggetti NodeShapes con oggetti LinkShapes e pertanto non propagano le eliminazioni, sebbene nel caso dell'oggetto RelationshipPort possa essere necessario. Lo stesso problema si verificava per InheritancePort che, come RelationshipPort, estende TogglePort. Questo metodo viene chiamato per ogni ElementLink visualizzato durante un'operazione di eliminazione. Se il collegamento in questione è un'istanza di LinkConnectsToNode e l'assegnatario del ruolo è TogglePort, la forma della porta potrebbe non essere più necessaria. Verificando quanti collegamenti vengono lasciati all'assegnatario del ruolo di destinazione, questo metodo restituisce VisitorFilterResult.YES se esiste esattamente un collegamento alla porta o VisitorFilterResult.DoNotCare in caso contrario. In questo modo di garantisce che quando l'ultimo collegamento al nodo viene eliminato, viene eliminata anche la forma della porta.
Spazio dei nomi: Microsoft.VisualStudio.Modeling.DslDefinition
Assembly: Microsoft.VisualStudio.Modeling.Sdk.DslDefinition.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.DslDefinition.12.0.dll)
Sintassi
'Dichiarazione
Public Overrides Function ShouldVisitRolePlayer ( _
walker As ElementWalker, _
sourceElement As ModelElement, _
elementLink As ElementLink, _
targetDomainRole As DomainRoleInfo, _
targetRolePlayer As ModelElement _
) As VisitorFilterResult
public override VisitorFilterResult ShouldVisitRolePlayer(
ElementWalker walker,
ModelElement sourceElement,
ElementLink elementLink,
DomainRoleInfo targetDomainRole,
ModelElement targetRolePlayer
)
Parametri
- walker
Tipo: Microsoft.VisualStudio.Modeling.ElementWalker
ElementWalker che attraversa il modello
- sourceElement
Tipo: Microsoft.VisualStudio.Modeling.ModelElement
ModelElement assegnatario del ruolo di origine.
- elementLink
Tipo: Microsoft.VisualStudio.Modeling.ElementLink
Collegamento dell'elemento che costituisce la relazione all'assegnatario del ruolo in questione
- targetDomainRole
Tipo: Microsoft.VisualStudio.Modeling.DomainRoleInfo
DomainRoleInfo del ruolo di destinazione
- targetRolePlayer
Tipo: Microsoft.VisualStudio.Modeling.ModelElement
ModelElement assegnatario del ruolo di destinazione nella relazione.
Valore restituito
Tipo: Microsoft.VisualStudio.Modeling.VisitorFilterResult
Implementa
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.
Vedere anche
Riferimenti
DslDefinitionModelDeleteClosure Classe
Spazio dei nomi Microsoft.VisualStudio.Modeling.DslDefinition