Вы можете использовать расширение рабочего процесса, чтобы действовать в качестве хранилища переменных в рамках всего процесса.
Создайте расширение рабочего процесса, которое содержит свойства. Добавьте расширение в приложение рабочего процесса. Задайте или Получите значение свойств из Деяний.
См https://msdn.microsoft.com/en-us/library/ff460215(v=vs.110).aspx
В ответ на ваш комментарий ниже.
Вы ошибаетесь в своем предположении. Расширение «имеет» выход из деятельности 1, который затем доступен для деятельности 2.
Например:
Создать класс для хранения свойств:
public class PropertyStoreExtension
{
int _myProperty
public int MyProperty
{
get
{
return this._myProperty;
}
set
{
this._myProperty = value;
}
}
}
Добавить это как расширение вашего рабочий процесс:
PropertyStoreExtension propertyStoreExtension = new PropertyStoreExtension
WorkflowInvoker myWorkflowInstence = new
WorkflowInvoker(myWorkflowDefinition());
myWorkflowInstence.Extensions.Add(propertyStoreExtension);
myWorkflowInstence.Invoke()
Ваш рабочий содержит 2 вида деятельности: Первый из них имеет свой «выход» и сохраняет его в расширении.
public class Activity1_SetProperty: CodeActivity
{
protected override void Execute(CodeActivityContext context)
{
PropertyStoreExtension pse =context.GetExtension<PropertyStoreExtension>();
if (pse != null)
{
pse.MyProperty=outputValue;
}
}
}
Второй получает значение из внутренней линии.
public class Activity2_GetProperty: CodeActivity
{
protected override void Execute(CodeActivityContext context)
{
PropertyStoreExtension pse =context.GetExtension<PropertyStoreExtension>();
if (pse != null)
{
int intputValue; = pse.MyProperty
}
}
}
Но в этом случае можно получить доступ к выходу activity1 и отправить его Activity2 в качестве ввода? Тем не менее, я думаю, что мне нужно объявить переменную outArgument в Activity1. И тогда я могу назначить это значение outargument для класса Extension из Host, чтобы получить его в Activity2 как вход. «Pleasae исправить меня, если я ошибаюсь ... – user3883423