Cara: Membuat Aktivitas
Aktivitas adalah unit inti perilaku dalam WF. Logika eksekusi aktivitas dapat diimplementasikan dalam kode terkelola atau dapat diimplementasikan dengan menggunakan aktivitas lain. Topik ini menunjukkan cara membuat dua aktivitas. Aktivitas pertama adalah aktivitas sederhana yang menggunakan kode untuk mengimplementasikan logika eksekusinya. Implementasi aktivitas kedua didefinisikan dengan menggunakan kegiatan lain. Aktivitas ini digunakan dalam langkah-langkah berikut dalam tutorial.
Membuat proyek pustaka aktivitas
Buka Visual Studio dan pilih Baru>Project dari menu File.
Dalam dialog Project Baru, di bawah kategori Terpasang, pilih Visual C#>Alur Kerja (atau Visual Basic>Alur Kerja).
Catatan
Jika Anda tidak melihat kategori templat Alur Kerja, Anda mungkin perlu memasang komponen Visual Studio Windows Workflow Foundation. Pilih link Buka Alat Penginstal Visual Studio di sisi kiri dialog Project Baru. Di Alat Penginstal Visual Studio, pilih tab Komponen individual. Kemudian, di bawah kategori Aktivitas pengembangan, pilih komponen Windows Workflow Foundation. Pilih Modifikasi untuk memasang komponen yang dipilih.
Pilih templat proyek Pustaka Aktivitas. Ketik
NumberGuessWorkflowActivities
dalam kotak Nama lalu klik OK.Klik kanan Activity1.xaml di Penjelajah Solusi dan pilih Hapus. Klik OK untuk mengonfirmasi.
Membuat aktivitas ReadInt
Pilih Tambahkan Item Baru dari menu Project.
Di simpul Item Umum>Terpasang, pilih Alur Kerja. Pilih Aktivitas Kode dari daftar Alur Kerja.
Ketik
ReadInt
ke dalam kotak Nama lalu klik Tambahkan.Ganti definisi yang ada
ReadInt
dengan definisi berikut.public sealed class ReadInt : NativeActivity<int> { [RequiredArgument] public InArgument<string> BookmarkName { get; set; } protected override void Execute(NativeActivityContext context) { string name = BookmarkName.Get(context); if (string.IsNullOrEmpty(name)) { throw new ArgumentException("BookmarkName cannot be an Empty string.", "context"); } context.CreateBookmark(name, new BookmarkCallback(OnReadComplete)); } // NativeActivity derived activities that do asynchronous operations by calling // one of the CreateBookmark overloads defined on System.Activities.NativeActivityContext // must override the CanInduceIdle property and return true. protected override bool CanInduceIdle { get { return true; } } void OnReadComplete(NativeActivityContext context, Bookmark bookmark, object state) { this.Result.Set(context, Convert.ToInt32(state)); } }
Public NotInheritable Class ReadInt Inherits NativeActivity(Of Integer) <RequiredArgument()> Property BookmarkName() As InArgument(Of String) Protected Overrides Sub Execute(ByVal context As NativeActivityContext) Dim name As String name = BookmarkName.Get(context) If name = String.Empty Then Throw New ArgumentException("BookmarkName cannot be an Empty string.", "BookmarkName") End If context.CreateBookmark(name, New BookmarkCallback(AddressOf OnReadComplete)) End Sub ' NativeActivity derived activities that do asynchronous operations by calling ' one of the CreateBookmark overloads defined on System.Activities.NativeActivityContext ' must override the CanInduceIdle property and return True. Protected Overrides ReadOnly Property CanInduceIdle As Boolean Get Return True End Get End Property Sub OnReadComplete(ByVal context As NativeActivityContext, ByVal bookmark As Bookmark, ByVal state As Object) Result.Set(context, Convert.ToInt32(state)) End Sub End Class
Catatan
Aktivitas
ReadInt
berasal dari NativeActivity<TResult> alih-alih CodeActivity, yang merupakan default untuk templat aktivitas kode. CodeActivity<TResult> dapat digunakan jika aktivitas memberikan satu hasil, yang diekspos melalui argumen Result, tetapi CodeActivity<TResult> tidak mendukung penggunaan marka buku, sehingga NativeActivity<TResult> digunakan.
Membuat aktivitas Permintaan
Tekan Ctrl+Shift+B untuk membangun proyek. Membangun proyek memungkinkan aktivitas
ReadInt
dalam proyek ini digunakan untuk membangun aktivitas kustom dari langkah ini.Pilih Tambahkan Item Baru dari menu Project.
Di simpul Item Umum>Terpasang, pilih Alur Kerja. Pilih Aktivitas dari daftar Alur Kerja.
Ketik
Prompt
ke dalam kotak Nama lalu klik Tambahkan.Klik dua kali Prompt.xaml di Penjelajah Solusi untuk menampilkannya di perancang jika belum ditampilkan.
Klik Argumen di sisi kiri bawah perancang aktivitas untuk menampilkan panel Argumen.
Klik Buat Argumen.
Ketik
BookmarkName
ke dalam kotak Nama, pilih Masuk dari daftar drop-down Arah, pilih String dari daftar drop-down Jenis argumen, lalu tekan Enter untuk menyimpan argumen.Klik Buat Argumen.
Ketik
Result
ke dalam kotak Nama yang berada di bawah argumen yang baru ditambahkanBookmarkName
, pilih Keluar dari daftar drop-down Arah, pilih Int32 dari daftar drop-down Jenis argumen, lalu tekan Enter.Klik Buat Argumen.
Ketik
Text
ke dalam kotak Nama, pilih Masuk dari daftar drop-down Arah, pilih String dari daftar drop-down Jenis argumen, lalu tekan Enter untuk menyimpan argumen.Ketiga argumen ini terikat pada argumen yang sesuai dari aktivitas WriteLine dan
ReadInt
yang ditambahkan ke aktivitasPrompt
dalam langkah-langkah berikut.Klik Argumen di sebelah kiri bawah perancang aktivitas untuk menutup panel Argumen.
Seret aktivitas Urutan dari bagian Kontrol FlowKotak Alat dan letakkan ke aktivitas Hilangkan di sini label perancang aktivitas Permintaan.
Tip
Jika jendela Kotak Alat tidak ditampilkan, pilih Kotak Alat dari menu Tampilan.
Seret aktivitas WriteLine dari bagian Primitif kotak Alat dan letakkan ke aktivitas Hilangkan di sini label aktivitas Urutan.
Ikat argumen Teks aktivitas WriteLine ke argumen Teks aktivitas Permintaan dengan mengetik
Text
ke dalam kotak Masukkan ekspresi C# atau Masukkan ekspresi VB di jendela Properti, lalu tekan tombol Tab dua kali. Hal ini menutup jendela daftar anggota IntelliSense dan menyimpan nilai properti dengan memindahkan pilihan dari properti. Properti ini juga dapat diatur dengan mengetikText
ke dalam kotak Masukkan ekspresi C# atau Masukkan ekspresi VB pada aktivitas itu sendiri.Tip
Jika Jendela Properti tidak ditampilkan, pilih Jendela Properti dari menu Tampilan.
Seret aktivitas ReadInt dari bagian NumberGuessWorkflowActivities di Kotak Alat dan letakkan dalam aktivitas Urutan sehingga mengikuti aktivitas WriteLine.
Ikat argumen BookmarkName dari aktivitas ReadInt ke argumen BookmarkName aktivitas Prompt dengan mengetik
BookmarkName
ke dalam kotak Masukkan ekspresi VB di sebelah kanan argumen BookmarkName di Jendela Properti, lalu tekan tombol Tab dua kali untuk menutup jendela anggota daftar IntelliSense dan menyimpan properti.Ikat argumen Hasil aktivitas ReadInt ke argumen Hasil aktivitas Permintaan dengan mengetik
Result
ke dalam kotak Masukkan ekspresi VB di sebelah kanan argumen Hasil di Jendela Properti, lalu tekan tombol Tab dua kali.Tekan Ctrl+Shift+B untuk membuat aplikasi.
Langkah berikutnya
Untuk instruksi tentang cara membuat alur kerja dengan menggunakan aktivitas ini, lihat langkah berikutnya dalam tutorial, Cara: Membuat Alur Kerja.
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk