Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
DynamicActivity genel bir oluşturucuya sahip somut, mühürlü bir sınıftır. DynamicActivity bir etkinlik DOM'ı kullanarak çalışma zamanında etkinlik işlevselliğini bir araya getirmek için kullanılabilir.
DynamicActivity Özellikleri
DynamicActivity yürütme özelliklerine, argümanlara ve değişkenlere erişimi vardır, ancak çalışma zamanı hizmetlerine, örneğin alt etkinlikleri zamanlama veya izleme gibi, erişimi yoktur.
Üst düzey özellikler iş akışı Argument nesneleri kullanılarak ayarlanabilir. Emredici kodda, bu bağımsız değişkenler yeni bir türdeki CLR özellikleri kullanılarak oluşturulur. XAML'de x:Class ve x:Member etiketleri kullanılarak bildirilir.
Tasarımcı ile DynamicActivity kullanılarak arabirim oluşturan ICustomTypeDescriptor kullanılarak yapılan etkinlikler. Tasarımcıda oluşturulan etkinlikler, Load kullanılarak aşağıdaki yordamda gösterildiği gibi dinamik olarak yüklenebilir.
Kesinlik temelli kod kullanarak çalışma zamanında etkinlik oluşturmak için
OpenVisual Studio 2010.
Dosya, Yeni, Proje'yi seçin. Proje Türleri penceresinde Visual C# altında İş Akışı 4.0'ı seçin ve v2010 düğümünü seçin. Şablonlar penceresinde Sıralı İş Akışı Konsolu Uygulaması'nı seçin. Yeni projeye DynamicActivitySample adını verin.
HelloActivity projesinde Workflow1.xaml öğesine sağ tıklayın ve Sil'i seçin.
Program.cs dosyasını açın. Dosyanın en üstüne aşağıdaki yönergeyi ekleyin.
using System.Collections.Generic;yönteminin
Mainiçeriğini, tek Sequence bir etkinlik içeren bir etkinlik oluşturan ve yeni bir WriteLine dinamik etkinliğin Implementation özelliğine atayan aşağıdaki kodla değiştirin.//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();Uygulamayı çalıştır. "Merhaba Dünya!" metnini içeren bir konsol penceresi görüntülenir.
XAML kullanarak çalışma zamanında etkinlik oluşturmak için
Visual Studio 2010'yu açın.
Dosya, Yeni, Proje'yi seçin. Proje Türleri penceresinde Visual C# altında İş Akışı 4.0'ı seçin ve v2010 düğümünü seçin. Şablonlar penceresinde İş Akışı Konsol Uygulaması'nı seçin. Yeni projeye DynamicActivitySample adını verin.
HelloActivity projesinde Workflow1.xaml dosyasını açın. Tasarımcının altında Argümanlar seçeneğine tıklayın. Yeni bir
IntüründeTextToWriteadlıStringbağımsız değişken oluşturun.Bir WriteLine etkinliğini araç kutusunun Temel Öğeler bölümünden tasarımcı yüzeyine sürükleyin. Değeri
TextToWriteetkinliğin Text özelliğine atayın.Program.cs dosyasını açın. Dosyanın en üstüne aşağıdaki yönergeyi ekleyin.
using System.Activities.XamlIntegration;yönteminin
Mainiçeriğini aşağıdaki kodla değiştirin.Activity act2 = ActivityXamlServices.Load(@"Workflow1.xaml"); results = WorkflowInvoker.Invoke(act2, new Dictionary<string, object> { { "TextToWrite", "HelloWorld!" } }); Console.ReadLine();Uygulamayı çalıştır. "Merhaba Dünya!" metnini içeren bir konsol penceresi görüntülenir.
Çözüm Gezgini'nde Workflow1.xaml dosyasına sağ tıklayın ve Kodu Görüntüle'yi seçin. etkinlik sınıfının ile
x:Classoluşturulduğunu ve özelliğinin ilex:Propertyoluşturulduğunu unutmayın.