我最近开始使用Workflows.I能够通过使用OutArgument
将一个活动的输出作为输入传递给另一个。如果不使用OutArgument
就可以。
如果可能请建议我怎么做?
全部谢谢
答案 0 :(得分:1)
您可以使用工作流扩展作为整个工作流范围内的变量存储库。
创建包含属性的工作流扩展。 将扩展添加到工作流应用程序。 在“活动”中设置或获取属性的值。
请参阅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
}
}
}