我编写了一个NativeActivity
派生活动,即使用书签作为选择分支的触发器。使用我在 MSDN 上找到的东西,我试着写这个来触发分支。该分支包含通过发送活动向远程客户端触发服务回调的活动。如果我为触发器设置延迟,回调会成功触发到客户端。如果我使用我的代码活动,则不会触发选择分支活动。
public sealed class UpdateListener : NativeActivity<ClientUpdate>
{
[RequiredArgument]
public InArgument<string> BookmarkName { get; set; }
protected override void Execute(NativeActivityContext context)
{
context.CreateBookmark(BookmarkName.Get(context),
new BookmarkCallback(this.OnResumeBookmark));
}
protected override bool CanInduceIdle
{
get { return true; }
}
public void OnResumeBookmark(NativeActivityContext context, Bookmark bookmark, object obj )
{
Result.Set(context, (ClientUpdate)obj);
}
}
因此需要一个 arg 来设置书签名称以供将来的书签引用以执行触发器。OnResumeBoookmark() 接收一个ClientUpdate
由我的应用程序传递的对象,该应用程序托管工作流应用程序。该活动将返回对象,以便ClientUpdate
可以将其传递给工作流并通过pick分支中的发送活动将其发送到远程客户端。反正理论上。
出于某种原因,它似乎是正确的,但感觉是错误的。我不确定是否应该以不同的方式编写 Activity 来处理我的 WF 服务所需的内容。