اجرای Workflow از طریق لود XAML
در اینجا قصد داریم یک Workflow را از طریق لود شدن یک فایل XAML اجرا نماییم.
مراحل انجام کار
پروژه گردش کار LoadUpWorkflowFromXML شامل 5 مرحله زیر است:
- اضافه کردن یک پروژه از نوع Workflow Console Application
- طراحی گردش کار
- نوشتن کدهای #C برای اجرای Workflow از طریق لود کردن یک رشته XAML
- اجرای Workflow
- پروژه گردش کار LoadUpWorkflowFromXML چگونه کار می کند؟
1 اضافه کردن یک پروژه جدید از نوع Workflow Console Application
در پنل Solution Explorer مطابق شکل زیر روی Solution Chapter01 راست کلیک کرده و از گزینه ADD زیر منوی New Project را انتخاب نمایید:
در پنجره Add New Project گزینه workflow را انتخاب کرده و سپس از سمت راست پنجره گزینه Workflow Console Application را انتخاب نمایید. حالا قسمت Name را با مقدار LoadUpWorkflowFromXML تنظیم نمایید و نهایتاً روی دکمه OK کلیک کنید.
2 طراحی گردش کار
از پنل Solution Explorerr فایل Workflow1.xaml را باز کنید و Workflow را مطابق زیر طراحی نمایید:
- از پنل ToolBox، اکتیویتی Sequence را انتخاب کرده و به داخل صفحه طراحی گردش کار بکشید.
- از پنل Toolbox اکتیویتی WriteLine را به داخل Sequence بکشید و فیلد Text آنرا مطابق زیر مقدار دهی نمایید.
3 نوشتن کدهای #C برای اجرای Workflow از طریق لود کردن یک رشته XAML
اما در ادامه فایل Program.cs را باز کنید و مطابق زیر کدها را تغییر دهید (قسمت قرمز رنگ):
فایل Program.cs
using System; using System.Activities; using System.Activities.Statements; using System.IO; using System.Collections; using System.Text; using System.Activities.XamlIntegration; namespace LoadUpWorkflowFromXML { class Program { static void Main(string[] args) { string filePath = @"C:\beyamooz\Chapter01\LoadUpWFFromXML\Workflow1.xaml"; string tempString = ""; StringBuilder xamlWFString = new StringBuilder(); StreamReader xamlStreamReader = new StreamReader(filePath); while (tempString != null) { tempString = xamlStreamReader.ReadLine(); if (tempString != null) { xamlWFString.Append(tempString); } } Activity wfInstance = ActivityXamlServices.Load(new StringReader(xamlWFString.ToString())); WorkflowInvoker.Invoke(wfInstance); } } }
4 اجرای Workflow
پروژه LoadUpWorkflowFromXML را بعنوان پروژه StartUp تنظیم نمایید و در ادامه برای اجرای Workflow دکمه های میانبر Ctrl+F5 را فشار دهید. با این کار Workflow ذخیره شده و بدون عملیات debugging نتیجه نشان داده خواهد شد. همان طور که می بینید، نتیجه در Console ویندوز اجرا می شود و اعدادی که انتظارش را داشتیم چاپ می شود:
5 پروژه گردش کار LoadUpWorkflowFromXML چگونه کار می کند؟
اما قطعه کد زیر را در نظر بگیرید:
فایل Program.cs
string filePath = @"C:\Users\pahlevansadegh.amir\Documents\Visual Studio 2013\Projects\Chapter01\LoadUpWorkflowFromXML\Workflow1.xaml"; string tempString = ""; StringBuilder xamlWFString = new StringBuilder(); StreamReader xamlStreamReader = new StreamReader(filePath); while (tempString != null) { tempString = xamlStreamReader.ReadLine(); if (tempString != null) { xamlWFString.Append(tempString); } }
با استفاده از کد بالا، رشته XML مربوط به Workflow از داخل فایل خوانده شده و آنرا در یک xamlWFString ذخیره می کند.
سپس با استفاده از دستور زیر، ActivityXamlServices رشته ذخیره شده در xamlWFString را می خواند و Workflow ساخته می شود:
فایل Program.cs
Activity wfInstance = ActivityXamlServices.Load(new StringReader(xamlWFString.ToString()));
{module خرید و دانلود فصل اول آموزش Workflow}
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 7646