Öncelikle Project–>New Project–>Workflow bölümüne geliyoruz.
Temel bir örnek yapabilmek amacıyla bir Workflow Console Application seçerek projemizi
Oluşturuyoruz.Oluşturduğumuzda bizim Activity Builder olarak kullanacağımız
Workflow1.xaml nesneside otomatik olarak karşımıza gelmektedir.
Dilersek add new item–>workflow–>Activity seçerek benzer xaml dosyalarınıda projemize ekleyebiliriz
Workflow1.xaml dosyasımıza çift tıklayarak açıyoruz.
Variables:Aktiviteler arası paylaşılacak verileri saklamak için kullanılır.Classların memberlarına benzer
Arguments:Variables benzemekle beraber workflowun içeri veya dışarı veri vermesini sağlarlar bir nevi method parametreleri gibidir.
Projemize Entity diye Yeni bir klasör açarak içine nesne modellerimizi oluşturalım
İlk olarak Person nesnesimizi tanımlayalım,benzer şekilde Persondan türeyen Student ve Teacher Nesne modellerinizde
public class Student:Person
{
public string StudentNumber { get; set; }
public int Class { get; set; }
}
public class Teacher
{
public string RegisterNumber { get; set; }
public int WorkingYear { get; set; }
}
İlk Örneğimiz ise Workflowa gelen nesnemizin İsmini ekrana yazdırmak olsun.
Bunun için xaml dosyamıza gelerek Argumentsa PersonArgument isimli bir arguman tanımlıyoruz.Argument Typedan ise bu argümanın tipinin Person tipinde olmasını ayarlıyoruz
Daha sonra Toolboxtan Primitives altında WriteLine activity xamlimiz içine sürükle bırak yapıyoruz.WriteLine Text kısmına PersonArgument.Name diyoruz.PersonArgumentin tipini Person olarak belirttiğimiz için Person içindeki Name ulaşabiliyoruz.
Daha sonra program cs gelerek aşağıdaki gibi kodlarımızı yazıyoruz
Person p = new Person { Name = “Bilgehan”, Age = 26, PersonType = 1 };
Dictionary<string, object> argumentlist = new Dictionary<string, object>();
argumentlist.Add(“PersonArgument”,p);
WorkflowInvoker.Invoke(new Workflow1(),argumentlist);
Console.ReadLine();
Yukarıki kodlarda dikkat edilmesi gereken xamlde tanımlanan argumentleri dictionary içinde gönderiyoruz
WorkflowInvoker.Invoke(new Workflow1(),argumentlist); bu kod sayesinde tanımladığımız xamlin çalışmasını sağlıyoruz.