2010-10-07 15 views
9

mentre si lavora con WF 4.0 ho notato che la classe WorkflowApplication espone le proprietà dell'azione (Aborted, Complete, ecc ...) al posto degli eventi. C'è una ragione specifica? Quando dovrei preferire le proprietà dell'azione invece degli eventi?Devo esporre Azioni invece di eventi?

Grazie

risposta

1

Ho inviato un'email a un membro del team WF e, gentilmente, mi ha risposto. Mi ha detto che eventi e azioni sono quasi equivalenti, ma il team ha avuto un feeling migliore con l'API che utilizza le azioni.

6

Wow; Vedo what you mean; questo mi sorprende davvero.

Tuttavia, se non riesci a pensare a un buon motivo per utilizzare le proprietà qui (e non posso), quindi attenersi a event s; evitano una serie di problemi (la disiscrizione accidentale e l'invocazione inappropriata sono le più grandi).

L'unica cosa che posso pensare è che forse avevano bisogno di questo per scopi di serializzazione, ma posso pensare ad altri modi per rompere quel pazzo. In alternativa, forse gli eventi regolari non hanno senso nella follia "proprietà di dipendenza"/"proprietà associata"/"evento indirizzato" mondo di WF.

+0

Grazie ... Mi chiedo se è solo perché sono facilmente serializzabili tramite Xaml..o forse possono essere più facilmente gestiti dal designer ... – fra

+0

@fre - re il secondo, il progettista delle vinacce è gestito per anni con eventi regolari ... presumibilmente avrebbero appena estratto qualche codice da lì? –

3

Modifica: il seguente non è preciso, vedere Marc's comment di seguito.

Per prima cosa, gli eventi consentono più gestori in modo inerziale mentre una proprietà Action consente solo un singolo gestore. Sì, la proprietà Action potrebbe eseguire una trasmissione, ma non è molto coesa o idiomatica.

Sono con Marc su questo, sono sorpreso che abbiano usato le proprietà Action invece degli eventi standard.

+4

Bene, * se si utilizza * + =/- =, una proprietà delegata si comporterà (a livello superficiale) * identicamente * per l'evento. Quindi un po 'difficile sostenere che consente solo un singolo gestore. –

+1

@Marc: buon punto, e questo è ancora più motivo per attenersi agli eventi poiché un utente potrebbe usare '+ =' mentre un altro fa '=' che rimuoverà efficacemente il primo. –

Problemi correlati