【问题标题】:How to get workflow instance in an activity?如何在活动中获取工作流实例?
【发布时间】:2010-08-22 08:48:12
【问题描述】:

我无法在工作流的代码活动中获取工作流实例。我该如何获取它?我确实检查了WorkflowEventArgs.WorkflowInstance Property,但在我的代码活动中我没有WorkflowEventArgs。相反,我有 EventArgs

我想做的事:

基本上,我需要访问工作流队列数据以获取队列中的值。在上面的 url 中,代码是相同的,但它不在代码活动中?访问队列的正确方法是什么?

【问题讨论】:

    标签: c# workflow workflow-foundation workflow-activity


    【解决方案1】:

    来自Getting Your Workflow Instance

    public sealed class LogState : CodeActivity
    {
        protected override void Execute(CodeActivityContext context)
        {
            Guid instanceId = context.WorkflowInstanceId;
            var connection = ConfigurationManager.ConnectionStrings["ConnectionString"];
    
    
            WorkflowInstanceProxy proxy = context.GetExtension<WorkflowInstanceInfo>().GetProxy();
            //...
        }
    
        protected override void CacheMetadata(CodeActivityMetadata metadata)
        {
            base.CacheMetadata(metadata);
            metadata.AddDefaultExtensionProvider<WorkflowInstanceInfo>(() => new WorkflowInstanceInfo());
        }
    
        public class WorkflowInstanceInfo : IWorkflowInstanceExtension
        {
            WorkflowInstanceProxy proxy;
    
            public IEnumerable<object> GetAdditionalExtensions()
            {
                yield break;
            }
    
            public void SetInstance(WorkflowInstanceProxy instance)
            {
    
                this.proxy = instance;
            }
    
            public WorkflowInstanceProxy GetProxy() { return proxy; }
        }
    

    【讨论】:

      【解决方案2】:

      我对你的问题有点困惑。这是你想要的吗?

      public sealed class GetWorkflowIdActivity : CodeActivity<string>
      {
          protected override string Execute(CodeActivityContext context)
          {
              return context.WorkflowInstanceId.ToString();
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2015-11-22
        • 2018-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多