日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

WF4B1 的有返回值的Activity,Bookmark,有返回值Bookmark

發(fā)布時(shí)間:2025/4/5 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WF4B1 的有返回值的Activity,Bookmark,有返回值Bookmark 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

WF4B1 的有返回值的Activity,Bookmark,有返回值Bookmark

?

目錄

1????NativeActivity<T>????1

1.1????定義有返回值的Activity????1

1.2????使用????1

2????Bookmark說明????2

3????Bookmark????2

3.1????定義Activity????2

3.2????定義工作流????2

3.3????宿主????3

3.4????結(jié)果????3

4????Bookmark(有返回值)????3

4.1????定義Activity????3

4.2????定義工作流????4

4.3????宿主????4

4.4????結(jié)果????5

?

?

NativeActivity<T>

?

類名:System.Activities.NativeActivity<TResult>

基類:System.Activities.WorkflowElement<TResult>

文件: System.Activities.dll

類型:abstract (void Execute(System.Activities.ActivityExecutionContext context))

?

定義有返回值的Activity

場(chǎng)景說明:有兩個(gè)[Int]參數(shù)v1,v2,返回值為v1+v2

?

public class myActivity<T> : NativeActivity<int>

{

public System.Activities.InArgument<int> v1

{ set; get; }

?

public System.Activities.InArgument<int> v2

{ set; get; }

?

protected override void Execute(ActivityExecutionContext context)

{

int r =(int)v1.Get(context) + (int)v2.Get(context);

this.Result.Set(context, r);

}

}

?

說明:

當(dāng)在設(shè)計(jì)器中添加有返回值的Activity時(shí),會(huì)出現(xiàn)一個(gè)對(duì)話框,要求指定返回值的類型

?

使用

流程

宿主

WorkflowInstance myInstance = new WorkflowInstance(new Sequence1());

?

myInstance.Run();

?

System.Console.Read();

結(jié)果

?

Bookmark說明

Bookmark可使用流程Idle并觸發(fā)流程的OnIdle

Bookmark

?

?

要定義具備Bookmark的Activit,可從 NativeActivity繼承

?

類名:System.Activities.NativeActivity

基類:System.Activities.WorkflowElement

文件: System.Activities.dll

類型:abstract (void Execute(System.Activities.ActivityExecutionContext context))

?

定義Activity

?

public class myBookmark : NativeActivity

{

?

public string bookmarkName { get; set; }

protected override void Execute(ActivityExecutionContext context)

{

context.CreateNamedBookmark(bookmarkName);

}

}

?

?

定義工作流

<p:Activity mc:Ignorable=""

x:Class="WorkflowConsoleApplication1.Sequence2"

xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities/design"

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

xmlns:p="http://schemas.microsoft.com/netfx/2009/xaml/activities"

xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities"

xmlns:w="clr-namespace:WorkflowConsoleApplication1;assembly=WorkflowConsoleApplication1"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

>

<p:Sequence >

<p:WriteLine DisplayName="WriteLine:begin">["begin"]</p:WriteLine>

<w:myBookmark bookmarkName="mywait" />

<p:WriteLine DisplayName="WriteLine:end">["end"]</p:WriteLine>

</p:Sequence>

</p:Activity>

?

宿主

<Window x:Class="WpfApplication1.Window1"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="Window1" Height="300" Width="300">

<StackPanel>

<Button Content="啟動(dòng)" Height="23" Name="button1" Width="75" Click="button1_Click" />

<Button Content="繼續(xù)" Height="23" Name="button2" Width="75" Click="button2_Click" />

?

</StackPanel>

?

</Window>

WorkflowInstance myInstance;

private void button1_Click(object sender, RoutedEventArgs e)

{

myInstance = new WorkflowInstance(new Sequence2());

myInstance.OnIdle += idel;

myInstance.Run();

?

}

IdleAction idel()

{

System.Console.WriteLine("等待提交.....");

return IdleAction.Nothing;

}

?

private void button2_Click(object sender, RoutedEventArgs e)

{

myInstance.ResumeBookmark("mywait",null);

}

結(jié)果

?

Bookmark(有返回值)

要定義具備有返回值的Bookmark Activit,可從 NativeActivity<T>繼承

?

類名:System.Activities.NativeActivity<TResult>

基類:System.Activities.WorkflowElement<TResult>

文件: System.Activities.dll

類型:abstract (void Execute(System.Activities.ActivityExecutionContext context))

?

定義Activity

public sealed class bookmark<T> : NativeActivity<T>

{

public bookmark()

: base()

{

}

?

public string bookmarkName { get; set; }

?

protected override void Execute(ActivityExecutionContext context)

{

context.CreateNamedBookmark(bookmarkName, new BookmarkCallback(bookmarkCallback));

?

}

?

void bookmarkCallback(ActivityExecutionContext context, Bookmark bookmark, object obj)

{

this.Result.Set(context, (T)obj);

?

}

}

?

定義工作流

<p:Activity mc:Ignorable=""

x:Class="myBookmarks.Sequence1"

xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities/design"

xmlns:m="clr-namespace:myBookmarks;assembly=myBookmarks"

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

xmlns:p="http://schemas.microsoft.com/netfx/2009/xaml/activities"

xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<p:Sequence>

<p:Sequence.Variables>

<p:Variable x:TypeArguments="x:String" Name="rs" />

</p:Sequence.Variables>

<p:WriteLine DisplayName="開始">["請(qǐng)?zhí)峤灰庖?#34;]</p:WriteLine>

<m:bookmark x:TypeArguments="x:String" DisplayName="等待意見" Result="[rs]" bookmarkName="mywait" />

<p:WriteLine DisplayName="顯示結(jié)果">[rs]</p:WriteLine>

</p:Sequence>

</p:Activity>

?

宿主

<Window x:Class="WpfApplication1.Window1"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="Window1" Height="300" Width="300">

<Canvas>

<Button Canvas.Left="27" Canvas.Top="31" Content="啟動(dòng)流程" Height="23" Name="button1" Width="75" Click="button1_Click" />

<Button Canvas.Left="27" Canvas.Top="111" Content="繼續(xù)" Height="23" Name="button2" Width="75" Click="button2_Click" />

<TextBox Canvas.Left="123" Canvas.Top="112.157" Height="23" Name="textBox1" Width="120" />

</Canvas>

</Window>

WorkflowInstance myInstance;

private void button1_Click(object sender, RoutedEventArgs e)

{

myInstance = new WorkflowInstance(new Sequence1());

myInstance.OnIdle += idel;

myInstance.Run();

}

?

IdleAction idel()

{

System.Console.WriteLine("等待提交.....");

return IdleAction.Nothing;

}

?

private void button2_Click(object sender, RoutedEventArgs e)

{

myInstance.ResumeBookmark("mywait", this.textBox1.Text);

}

?

結(jié)果

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/foundation/archive/2009/06/08/1498624.html

總結(jié)

以上是生活随笔為你收集整理的WF4B1 的有返回值的Activity,Bookmark,有返回值Bookmark的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。