2010-08-22 55 views
2

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

我所试图做的事:

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

回答

1

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

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

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; } 
    } 
相关问题