例子下载:
http://files.cnblogs.com/foundation/ActivityFuncSample.rar
ActivityFunc
类名 | System.Activities.ActivityFunc System.Activities.ActivityFunc System.Activities.ActivityFunc System.Activities.ActivityFunc | |
文件 | System.Activities.dll | |
结构说明 | System.Activities.ActivityDelegate 是一个 sealed类 [DisplayName] 属性 的类型为[string],是并行分支集合 [Handler] 属性 的类型为[System.Activities.Activity],为要执行的Activity [Argument,Argument1,Argument2,Argument16] 属性 的类型为[System.Activities.DelegateInArgument [Result]属性 的类型为[System.Activities.DelegateOutArgument | |
功能说明 | ActivityFunc |
InvokeFunc
类名 | System.Activities.Expressions.InvokeFunc System.Activities.Expressions.InvokeFunc System.Activities.Expressions.InvokeFunc System.Activities.Expressions.InvokeFunc |
文件 | System.Activities.dll |
结构说明 | 继承 NativeActivity 是一个 sealed类 override 了 [CacheMetadata方法] 与 [Execute方法] 与[Cancel 方法] [Func]属性 的类型为[System.Activities.ActivityFunc [Argument,Argument1,Argument2,Argument16] 属性 的类型为[System.Activities.InArgument |
功能说明 | ActivityFunc |
使用说明
ActivityFunc
例子
要实现如下功能:
在流程中定义一个string变量[myVariable]
在流程中定义一个ActivityFunc 属性参数[myFunc]
在流程中添加一个[ActivityAFunc
在流程中添加一个[WriteLine],用于打印[ActivityAFunc
[myFunc]的具体内容由创建流程时指定
流程
为其绑定要[InvokeFunc]绑定要执行的[myFunc],此步要在XAML文件中进行
<InvokeFunc x:TypeArguments&#61;"x:String, x:String" Argument&#61;"[myVariable]" sap:VirtualizedContainerService.HintSize&#61;"213,22" Result&#61;"[myResult]">
<PropertyReference x:TypeArguments&#61;"ActivityFunc(x:String, x:String)" PropertyName&#61;"myFunc" />
InvokeFunc> |
宿主
一个用于测试的有返回值Activity | public class myActivity : CodeActivity<string> { public InArgument<string> inArgument { set; get; }
protected override string Execute(CodeActivityContext context) { string v &#61; context.GetValue(inArgument);
return v&#43;":wxd"; } } |
宿主 | testWorkflow testWorkflow &#61; new testWorkflow();
ActivityFunc<string, string> activityFunc &#61; new ActivityFunc<string, string>();
activityFunc.Argument &#61; new DelegateInArgument<string>();
activityFunc.Handler &#61; new myActivity() { inArgument &#61; activityFunc.Argument };
testWorkflow.myFunc &#61; activityFunc;
WorkflowInvoker.Invoke(testWorkflow); |
结果 |