Хороший способ обмена данными между различными рабочими процессами и экземплярами состоит в создании workflowInstanceExtension. Это расширение должно быть добавлено вашим приложением, и его один и тот же экземпляр должен быть использован для всех ваших приложений WorkflowAppoker, invoker или service, поэтому он будет "singleton".
Пример:
MyDataSharingExtension dse = new MyDataSharingExtension();
WorkflowApplication wfApp1 = new WorkflowApplication();
wfApp1.Extensions.Add(dse);
WorkflowApplication wfApp2 = new WorkflowApplication();
wfApp2.Extensions.Add(dse);
Затем, внутри действия, вы можете позвонить
context.GetExtension<MyDataSharingExtension>().GetData();
Если вам нужны данные на уровне рабочего процесса (не код), вы можете выполнить пользовательское действие для извлечения данных в переменную.
Если это не соответствует вашим потребностям, взгляните на реализацию корпоративных переменных