我正在使用工作流基础4.5创建自定义本机活动。我想为活动设置书签,并在WorkflowApplication的PersistableIdle回调中进行一些自定义处理。在该回调中,我想要读取提供给活动的InArgument<>中的数据。在工作流实例被持久化之前和/或属性。基本上,我希望在完成持久化过程之前,在执行活动的上下文之外和运行时之外读取这些值,作为前一步骤。
我认为我可以使用WorkflowInspectionServices帮助程序类执行此操作,但是不清楚是否可行,因为我必须从上下文中读取该活动实例的InArgument<>。
是否还有另一个助手类可以通过wf4.5实现这一点,但我还没有发现?感谢。
wfApp.PersistableIdle += args =>
{
using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew))
{
wfApp.Unload();
args.Bookmarks.ForEach(bookmark =>
{
var activityId = bookmark.BookmarkName;
//Doesn't seem this will really work?
var activityInfo = WorkflowInspectionServices.Resolve(activity, activityId) as MyCustomActivity;
var recipientId = activityInfo.RecipientId.Get(<I have no context>);
workflowSuspendedCallback.Invoke(activityId, recipientId));
});
scope.Complete();
}
return PersistableIdleAction.None;
};