我是Windows workflow的新手,我正在使用4.5创建一个长期运行的工作流。我做了很多在线搜索,试图找到一种不需要用户输入就创建书签和ResumeBookmark的方法。到目前为止,我所读到的信息都需要一个Console.ReadLine (用户输入)才能恢复书签。书签只用于人类输入吗?我现在正在使用延迟活动,但想使用Bookmark。
我的Workflow.xaml是这样的
诸若此类。
我真的很感谢你的帮助。
发布于 2014-08-22 10:28:51
书签不需要用户输入。
在活动中创建书签:
context.CreateBookmark("bookmarkName", new BookmarkCallback(OnResumeBookmark));其中"OnResumeBookmark“是您活动中的一种方法。
然后,当您继续工作流程时,您将使用以下内容:
WorkflowApplication wfApp= new WorkflowApplication(new NameOFWorkflow());
wfApp.Run();
wfApp.ResumeBookmark("bookmarkName");然后OnResumeBookmark将执行。
这是一个更完整的版本http://msdn.microsoft.com/en-us/library/ee191721(v=vs.110).aspx
关于console.read的内容只是向您展示书签名称如何成为变量而不是字符串的一种方式:
context.CreateBookmark(BookmarkName.Get(context), <-- get name from the InArgumen发布于 2014-09-29 20:45:44
这里是一个定制活动的示例代码:
public sealed class WaitForResponse<TResult> : NativeActivity<TResult>
{
public string ResponseName { get; set; }
protected override bool CanInduceIdle
{
get
{
return true;
}
}
protected override void Execute(NativeActivityContext context)
{
context.CreateBookmark(this.ResponseName, new BookmarkCallback(this.ReceivedResponse));
// Put code here...
}
void ReceivedResponse(NativeActivityContext context, Bookmark bookmark, object obj)
{
this.Result.Set(context, (TResult)obj);
}此活动将运行该方法,执行并等待(持久化/卸载)直到一个ResumeBookmark。ResumeBookmark可以是WCF调用或WorkflowApplication.ResumeBookmark调用。
https://stackoverflow.com/questions/25429099
复制相似问题