Мне не удалось получить экземпляр рабочего процесса в коде активности моего рабочего процесса. Как мне его получить? Я проверял WorkflowEventArgs.WorkflowInstance Свойство , но в моем коде активности у меня нет WorkflowEventArgs . вместо этого у меня есть EventArgs .
Что я пытаюсь сделать:
По сути, мне нужно получить доступ к данным очереди Workflow, чтобы получить значения в очереди. в приведенном выше URL, код для того же, но не в коде деятельности? Как правильно получить доступ к очереди?
С Получение экземпляра рабочего процесса :
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; } }
Я немного смущен вашим вопросом.Это то, что вы хотите?
public sealed class GetWorkflowIdActivity : CodeActivity<string> { protected override string Execute(CodeActivityContext context) { return context.WorkflowInstanceId.ToString(); } }