2010. március 25., csütörtök

WF 3.5 ExternalDataExchange event paraméterezés

Workflow Foundation 3.5 alatt szerettem volna StateMachine workflow-ban HandleExternalEvent activity-t használni.

Ennek a módja az, hogy definiálunk egy interfészt amit ellátunk az ExternalDataExchange attribútummal, és abban megadunk eseményeket, amiket aztán kódból kiváltunk.

http://msdn.microsoft.com/en-us/library/system.workflow.activities.externaldataexchangeattribute.aspx

Ilyenkor az esemény paraméterezése úgy történik, hogy az event-argumentumot leszármaztatjuk az ExternalDataEventArgs-ból.

http://msdn.microsoft.com/en-us/library/system.workflow.activities.externaldataeventargs.aspx

Ekkor nem ár, ha figyelünk arra, hogy a tulajdonságok, amiket definiálunk serializálhatóak legyenek! (Sok szenvedést kerülünk el vele). Ha mégis "rossz" típusú property-t definiálunk, a következő egyébként igen kreatív futás-idejű hibaüzenet kapjuk:

"Event "****" on interface type "****" for instance id "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" cannot be delivered."

Ez az esemény kiváltásánál jön elő és nagyon kommunikatív. Ha ezt látjuk, jó eséllyel az EventArg-unk nem megfelelő.


Nincsenek megjegyzések:

Megjegyzés küldése