C# 4.0 为工作流变量赋值 我有一个关于Windows工作流基础4的问题。我有一个名为PositionArrayActivity的活动。此活动中有一个序列活动。我需要在Execute方法(在工作流执行期间)中使用一个基金变量,将其值映射到在Create方法中创建的PORTFOLIO_名称。。。。要在运行时将oneFund价值映射到PORTFOLIO_名称,我必须做些什么
谢谢C# 4.0 为工作流变量赋值 我有一个关于Windows工作流基础4的问题。我有一个名为PositionArrayActivity的活动。此活动中有一个序列活动。我需要在Execute方法(在工作流执行期间)中使用一个基金变量,将其值映射到在Create方法中创建的PORTFOLIO_名称。。。。要在运行时将oneFund价值映射到PORTFOLIO_名称,我必须做些什么,c#-4.0,workflow-foundation-4,workflow-activity,C# 4.0,Workflow Foundation 4,Workflow Activity,谢谢 public sealed class PositionArrayActivity : NativeActivity, IActivityTemplateFactory { [Browsable(false)] public Dictionary<string, List<Entity>> dictionary = new Dictionary<string, List<Entity>>(); public Activ
public sealed class PositionArrayActivity : NativeActivity, IActivityTemplateFactory
{
[Browsable(false)]
public Dictionary<string, List<Entity>> dictionary = new Dictionary<string, List<Entity>>();
public ActivityAction<Entity[]> Body { get; set; }
public Entity[] PositionList { get; set; }
public SqlDataReader rdr;
public SqlDataReader sdr;
public Entity[] positionArray;
public List<String> fundList;
public String oneFund { get; set; }
public String date { get; set; }
public List<Entity> listToArrayPositions;
protected override void CacheMetadata(NativeActivityMetadata metadata)
{
metadata.AddDelegate(Body);
}
protected override void Execute(NativeActivityContext context)
{
// A lot of code....
}
public Activity Create(DependencyObject target)
{
Variable<string> var = new Variable<string>
{
Name = "PORTFOLIO_NAME"
};
var fef = new PositionArrayActivity();
var aa = new ActivityAction<Entity[]>();
var da = new DelegateInArgument<Entity[]>();
da.Name = "positions";
fef.Body = aa;
aa.Argument = da;
aa.Handler = new Sequence
{
Variables = { var }
};
return fef;
}
}
公共密封类位置阵列活动:NativeActivity,IActivityTemplateFactory
{
[可浏览(错误)]
公共字典=新字典();
公共活动操作体{get;set;}
公共实体[]位置列表{get;set;}
公共SqlDataReader-rdr;
公共SqlDataReader sdr;
公共实体[]位置数组;
公开名单基金名单;
公共字符串oneFund{get;set;}
公共字符串日期{get;set;}
公共列表列表到ArrayPositions;
受保护的覆盖无效缓存元数据(NativeActivityMetadata)
{
元数据.AddDelegate(Body);
}
受保护的覆盖无效执行(NativeActivityContext上下文)
{
//很多代码。。。。
}
公共活动创建(DependencyObject目标)
{
变量var=新变量
{
Name=“投资组合名称”
};
var fef=新位置ArrayActivity();
var aa=新的ActivityAction();
var da=新的DelegateInArgument();
da.Name=“职位”;
fef.Body=aa;
aa.参数=da;
aa.Handler=新序列
{
变量={var}
};
返回fef;
}
}
您需要一个ActivityContext来设置变量值,因此首先将var的声明(该名称是否实际编译?)移动到更高的范围
然后执行
var.Set(activityContext,oneFund)
但有一点是,oneFund属性在应用程序启动时只设置一次,因此您可能会得到一些令人惊讶的结果。如果你想让每一个例子都是这样,你需要一个不确定的答案 您需要使用ActivityContext来设置变量值,因此首先将var的声明(该名称是否实际编译?)移动到更高的范围 然后执行 var.Set(activityContext,oneFund)
但有一点是,oneFund属性在应用程序启动时只设置一次,因此您可能会得到一些令人惊讶的结果。如果你想让每一个例子都是这样,你需要一个不确定的答案 投资组合名称值没有问题问题问题是。。。我如何才能在另一个活动中使用oneFund价值而不执行分配活动我不太清楚您使用oneFund做什么,对不起。是的,例如,我创建了PORTFOLIO_NAME变量,将其中的一个基金值放在那里,在另一个Writeline活动中,我想使用这个PORTFOLIO_NAME变量关于PORTFOLIO_NAME值的问题是。。。我如何才能在另一个活动中使用oneFund价值而不执行分配活动我不太清楚您使用oneFund做什么,对不起。是否为每个实例设置一次,并且您希望能够在该实例中的多个活动中使用它?是的,例如,我创建了PORTFOLIO_NAME变量,将其中的一个基金值放在另一个Writeline活动中,我希望使用此PORTFOLIO_NAME变量