Tevékenység létrehozása futtatókörnyezetben a DynamicActivity használatával
DynamicActivity egy beton, zárt osztály egy nyilvános konstruktor. DynamicActivity a tevékenységfunkciók futásidőben való összeállításához használható tevékenység DOM használatával.
DynamicActivity-szolgáltatások
DynamicActivity hozzáféréssel rendelkezik a végrehajtási tulajdonságokhoz, argumentumokhoz és változókhoz, de nincs hozzáférése a futásidejű szolgáltatásokhoz, például a gyermektevékenységek ütemezéséhez vagy a nyomon követéshez.
A legfelső szintű tulajdonságok munkafolyamat-objektumok Argument használatával állíthatók be. Az imperatív kódban ezek az argumentumok egy új típus CLR-tulajdonságaival jönnek létre. Az XAML-ben a rendszer a címkéket és x:Member
a címkéket használjax:Class
.
A tervezővel ICustomTypeDescriptorfelülettel DynamicActivity létrehozott tevékenységek a . A tervezőben létrehozott tevékenységek dinamikusan Loadtölthetők be az alábbi eljárás szerint.
Tevékenység létrehozása futásidőben imperatív kóddal
OpenVisual Studio 2010.
Válassza a Fájl, Új, Projekt lehetőséget. A Projekttípusok ablakban válassza a Visual C# alatt a Munkafolyamat 4.0 lehetőséget, majd válassza ki a v2010 csomópontot. A Sablonok ablakban válassza a Szekvenciális munkafolyamat-konzolalkalmazás lehetőséget. Nevezze el az új dynamicActivitySample projektet.
Kattintson a jobb gombbal a Workflow1.xaml elemre a HelloActivity projektben, és válassza a Törlés lehetőséget.
Nyissa meg a Program.cs fájlt. Adja hozzá a következő irányelvet a fájl elejéhez.
using System.Collections.Generic;
Cserélje le a
Main
metódus tartalmát a következő kódra, amely létrehoz egy Sequence tevékenységet, amely egyetlen WriteLine tevékenységet tartalmaz, és hozzárendeli egy Implementation új dinamikus tevékenység tulajdonságához.//Define the input argument for the activity var textOut = new InArgument<string>(); //Create the activity, property, and implementation Activity dynamicWorkflow = new DynamicActivity() { Properties = { new DynamicActivityProperty { Name = "Text", Type = typeof(InArgument<String>), Value = textOut } }, Implementation = () => new Sequence() { Activities = { new WriteLine() { Text = new InArgument<string>(env => textOut.Get(env)) } } } }; //Execute the activity with a parameter dictionary WorkflowInvoker.Invoke(dynamicWorkflow, new Dictionary<string, object> { { "Text", "Hello World!" } }); Console.ReadLine();
Hajtsa végre az alkalmazást. Megjelenik a ""Helló világ!" alkalmazás!" szöveggel ellátott konzolablak.
Tevékenység létrehozása futásidőben az XAML használatával
Nyissa meg a Visual Studio 2010-et.
Válassza a Fájl, Új, Projekt lehetőséget. A Projekttípusok ablakban válassza a Visual C# alatt a Munkafolyamat 4.0 lehetőséget, majd válassza ki a v2010 csomópontot. Válassza a Munkafolyamat-konzolalkalmazás lehetőséget a Sablonok ablakban. Nevezze el az új dynamicActivitySample projektet.
Nyissa meg a Workflow1.xaml fájlt a HelloActivity projektben. Kattintson a tervező alján található Argumentumok lehetőségre. Hozzon létre egy új
In
, típusnakString
nevezettTextToWrite
argumentumot.Húzzon egy WriteLine-tevékenységet az eszközkészlet Primitívek szakaszából a tervezőfelületre. Rendelje hozzá az értéket
TextToWrite
a tevékenység Text tulajdonságához.Nyissa meg a Program.cs fájlt. Adja hozzá a következő irányelvet a fájl elejéhez.
using System.Activities.XamlIntegration;
Cserélje le a(z)
Main
metódus tartalmát a következő kódra.Activity act2 = ActivityXamlServices.Load(@"Workflow1.xaml"); results = WorkflowInvoker.Invoke(act2, new Dictionary<string, object> { { "TextToWrite", "HelloWorld!" } }); Console.ReadLine();
Hajtsa végre az alkalmazást. Megjelenik a ""Helló világ!" alkalmazás!" szöveggel ellátott konzolablak.
Kattintson a jobb gombbal a Workflow1.xaml fájlra a Megoldáskezelő, és válassza a Kód megtekintése parancsot. Vegye figyelembe, hogy a tevékenységosztály ezzel
x:Class
jön létre, és a tulajdonság a következővelx:Property
jön létre: .
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: