Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
DynamicActivity adalah kelas konkret yang sudah disegel dengan konstruktor publik. DynamicActivity dapat digunakan untuk merakit fungsionalitas aktivitas saat runtime menggunakan DOM aktivitas.
Fitur DynamicActivity
DynamicActivity memiliki akses ke properti eksekusi, argumen, dan variabel, tetapi tidak ada akses ke layanan runtime seperti penjadwalan aktivitas anak atau pelacakan.
Properti tingkat atas dapat diatur menggunakan objek Argument alur kerja. Dalam kode imperatif, argumen ini dibuat menggunakan properti CLR pada jenis baru. Di XAML, mereka dinyatakan menggunakan x:Class tag dan x:Member .
Aktivitas yang dibangun menggunakan DynamicActivity antarmuka dengan perancang menggunakan ICustomTypeDescriptor. Aktivitas yang dibuat dalam perancang dapat dimuat secara dinamis menggunakan Load, seperti yang ditunjukkan dalam prosedur berikut.
Untuk membuat aktivitas saat runtime menggunakan kode imperatif
OpenVisual Studio 2010.
Pilih File, Baru, Proyek. Pilih Alur Kerja 4.0 di bawah Visual C# di jendela Jenis Proyek , dan pilih simpul v2010 . Pilih Aplikasi Konsol Alur Kerja Berurutan di jendela Templat . Beri nama proyek baru DynamicActivitySample.
Klik kanan Workflow1.xaml di proyek HelloActivity dan pilih Hapus.
Buka Program.cs. Tambahkan direktif berikut ke bagian atas file.
using System.Collections.Generic;Gantikan isi metode
Maindengan kode berikut, yang membuat sebuah aktivitas Sequence yang berisi satu aktivitas WriteLine dan menetapkannya ke properti Implementation dari aktivitas dinamis baru.//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();Jalankan aplikasi. Jendela konsol dengan teks "Halo Dunia!" ditampilkan.
Untuk pembuatan aktivitas pada saat runtime menggunakan XAML
Buka Visual Studio 2010.
Pilih File, Baru, Proyek. Pilih Alur Kerja 4.0 di bawah Visual C# di jendela Jenis Proyek , dan pilih simpul v2010 . Pilih Aplikasi Konsol Alur Kerja di jendela Templat . Beri nama proyek baru DynamicActivitySample.
Buka Workflow1.xaml di proyek HelloActivity. Klik opsi Argumen di bagian bawah perancang. Buat argumen baru
Inyang disebutTextToWritejenisString.Seret aktivitas WriteLine dari bagian Primitives di kotak alat ke permukaan perancang. Tetapkan nilai
TextToWriteke properti Teks aktivitas.Buka Program.cs. Tambahkan direktif berikut ke bagian atas file.
using System.Activities.XamlIntegration;Ganti konten
Mainmetode dengan kode berikut.Activity act2 = ActivityXamlServices.Load(@"Workflow1.xaml"); results = WorkflowInvoker.Invoke(act2, new Dictionary<string, object> { { "TextToWrite", "HelloWorld!" } }); Console.ReadLine();Jalankan aplikasi. Jendela konsol dengan teks "Halo Dunia!" muncul.
Klik kanan file Workflow1.xaml di Penjelajah Solusi dan pilih Tampilkan Kode. Perhatikan bahwa kelas aktivitas dibuat dengan
x:Classdan properti dibuat denganx:Property.