Postupy: Vytvoření vlastní šablony aktivity
Vlastní šablony aktivit slouží k přizpůsobení konfigurace aktivit, včetně vlastních složených aktivit, aby uživatelé nemuseli vytvářet jednotlivé aktivity jednotlivě a konfigurovat jejich vlastnosti a další nastavení ručně. Tyto vlastní šablony lze zpřístupnit v sadě nástrojů v návrháři windows workflow nebo z pře hostovaného návrháře, ze kterého je uživatelé mohou přetáhnout na předkonfigurovanou plochu návrhu. Návrhář pracovního postupu se dodává s dobrými příklady takových šablon: Návrhář šablon SendAndReceiveReply a Návrhář šablon ReceiveAndSendReply v kategorii Návrháři aktivit zasílání zpráv.
První postup v tomto tématu popisuje, jak vytvořit vlastní šablonu aktivity pro aktivitu zpoždění a druhý postup stručně popisuje, jak ho zpřístupnit v Návrháři pracovního postupu a ověřit, že vlastní šablona funguje.
Vlastní šablony aktivit musí implementovat IActivityTemplateFactory. Rozhraní má jednu Create metodu, pomocí které můžete vytvořit a nakonfigurovat instance aktivit používané v šabloně.
Vytvoření šablony pro aktivitu delay
Spusťte Visual Studio 2010.
V nabídce Soubor přejděte na příkaz Nový a vyberte Projekt.
Otevře se dialogové okno Nový projekt .
V podokně Typyprojektůch
V podokně Šablony vyberte Knihovnu aktivit.
Do pole Název zadejte
DelayActivityTemplate
.Přijměte výchozí hodnoty v textových polích Název umístění a řešení a klikněte na tlačítko OK.
Klikněte pravým tlačítkem myši na adresář Reference projektu DelayActivityTemplate v Průzkumník řešení a zvolte Přidat odkaz a otevřete dialogové okno Přidat odkaz.
Přejděte na kartu .NET a vyberte PresentationFramework ze sloupce Název komponenty na levé straně a kliknutím na TLAČÍTKO OK přidejte odkaz na soubor PresentationFramework.dll.
Tento postup opakujte, pokud chcete přidat odkazy na soubory System.Activities.Presentation.dll a WindowsBase.dll.
Klikněte pravým tlačítkem myši na projekt DelayActivityTemplate v Průzkumník řešení a zvolte Přidat a potom novou položku a otevřete dialogové okno Přidat novou položku.
Vyberte šablonu třídy, pojmenujte ji MyDelayTemplate a klepněte na tlačítko OK.
Otevřete soubor MyDelayTemplate.cs a přidejte následující příkazy.
//Namespaces added using System.Activities; using System.Activities.Statements; using System.Activities.Presentation; using System.Windows;
Implementujte s IActivityTemplateFactory
MyDelayActivity
třídou následující kód. Tím se nakonfiguruje zpoždění na dobu trvání 10 sekund.public sealed class MyDelayActivity : IActivityTemplateFactory { public Activity Create(System.Windows.DependencyObject target) { return new System.Activities.Statements.Delay { DisplayName = "DelayActivityTemplate", Duration = new TimeSpan(0, 0, 10) }; } }
V nabídce Sestavení vyberte Sestavit řešenía vygenerujte DelayActivityTemplate.dll soubor.
Zpřístupnění šablony v Návrháři pracovního postupu
Pravým tlačítkem myši klikněte na řešení DelayActivityTemplate v Průzkumník řešení a zvolte Přidat a potom Nový projekt otevřete dialogové okno Přidat nový projekt.
Vyberte šablonu konzolové aplikace pracovního postupu, pojmenujte ji
CustomActivityTemplateApp
a klikněte na tlačítko OK.Klikněte pravým tlačítkem myši na adresář Reference projektu CustomActivityTemplateApp v Průzkumník řešení a zvolte Přidat odkaz a otevřete dialogové okno Přidat odkaz.
Přejděte na kartu Projekty a v levém sloupci Název projektu vyberte DelayActivityTemplate a kliknutím na tlačítko OK přidejte odkaz na soubor DelayActivityTemplate.dll, který jste vytvořili v prvním postupu.
Pravým tlačítkem myši klikněte na projekt CustomActivityTemplateApp v Průzkumník řešení a zvolte Sestavit pro kompilaci aplikace.
Pravým tlačítkem myši klikněte na projekt CustomActivityTemplateApp v Průzkumník řešení a zvolte Nastavit jako spouštěný projekt.
V nabídce Ladění vyberte Spustit bez ladění a po zobrazení výzvy z okna cmd.exe pokračujte stisknutím libovolné klávesy.
Otevřete soubor Workflow1.xaml a otevřete panel nástrojů.
Vyhledejte šablonu MyDelayActivity v kategorii DelayActivityTemplate. Přetáhněte ho na návrhovou plochu. Ověřte v okně Vlastnosti , že
Duration
vlastnost byla nastavena na 10 sekund.
Příklad
Soubor MyDelayActivity.cs by měl obsahovat následující kód.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//Namespaces added
using System.Activities;
using System.Activities.Statements;
using System.Activities.Presentation;
using System.Windows;
namespace DelayActivityTemplate
{
public sealed class MyDelayActivity : IActivityTemplateFactory
{
public Activity Create(System.Windows.DependencyObject target)
{
return new System.Activities.Statements.Delay
{
DisplayName = "DelayActivityTemplate",
Duration = new TimeSpan(0, 0, 10)
};
}
}
}