Creatie van werkstroomactiviteiten met behulp van de klasse CodeActivity
Activiteiten die zijn gemaakt door overname van CodeActivity , kunnen basis imperatief gedrag implementeren door de Execute methode te overschrijven.
CodeActivityContext gebruiken
Functies van de werkstroomruntime kunnen worden geopend vanuit de Execute methode met behulp van leden van de parameter van het context
type CodeActivityContext. De functies die beschikbaar zijn via CodeActivityContext :
De waarden van variabelen en argumenten ophalen en instellen.
Aangepaste traceringsfuncties met behulp van Track.
Toegang tot de uitvoeringseigenschappen van de activiteit met behulp van GetProperty.
Een aangepaste activiteit maken die wordt overgenomen van CodeActivity
Open Visual Studio 2010.
Selecteer Bestand, Nieuw en vervolgens Project. Selecteer Workflow 4.0 onder Visual C# in het venster Projecttypen en selecteer het knooppunt v2010 . Selecteer Activiteitsbibliotheek in het venster Sjablonen. Geef het nieuwe project de naam HelloActivity.
Klik met de rechtermuisknop op Activity1.xaml in het HelloActivity-project en selecteer Verwijderen.
Klik met de rechtermuisknop op het HelloActivity-project en selecteer Toevoegen en vervolgens Klasse. Geef de nieuwe klasse een naam HelloActivity.cs.
Voeg in het bestand HelloActivity.cs de volgende
using
instructies toe.using System.Activities; using System.Activities.Statements;
De nieuwe klasse overnemen door CodeActivity een basisklasse toe te voegen aan de klassedeclaratie.
class HelloActivity : CodeActivity
Voeg functionaliteit toe aan de klasse door een Execute methode toe te voegen.
protected override void Execute(CodeActivityContext context) { Console.WriteLine("Hello World!"); }
Gebruik de CodeActivityContext functie om een traceringsrecord te maken.
protected override void Execute(CodeActivityContext context) { Console.WriteLine("Hello World!"); CustomTrackingRecord record = new CustomTrackingRecord("MyRecord"); record.Data.Add(new KeyValuePair<String, Object>("ExecutionTime", DateTime.Now)); context.Track(record); }