2010-08-22 58 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; } 
    } 
相關問題