我有一个非常简单的 XOML 文件,在处理程序中包含一个代码活动ReceiveActivity
。
ReceiveActivity 被映射到一个接口IRulesEngineService
,在其上调用一个方法。
void DoWork(int i);
接口方法上的输入参数映射到 Xoml 上的一个属性,称为I
我现在正试图尝试进入工作流程生命周期:
- 就在第一个(仅在这种情况下)代码活动被执行之前
- 就在我的工作流程上
i
分配了参数之后。I
我尝试过覆盖 XOML 上的所有各种方法和事件,但在所有情况下I
,我尝试过的所有事件和覆盖都始终为零。然后在第一个代码活动中正确设置为传入的参数。例如,假设我传入8
了 ClientSide DoWork 调用。
public int I {get; set;}
protected override void Initialize(System.IServiceProvider provider)
{
I = I*10; //I is still 0
base.Initialize(provider);
I = I * 10; //I is still 0
}
//Event on Xoml Designer
private void Pinnacle_Initialized(object sender, EventArgs e)
{
I = I * 10; //I is still 0
}
//Event on Xoml Designer
private void receiveActivity1_OperationValidation(object sender, OperationValidationEventArgs e)
{
I = I * 10; //I is still 0
}
protected override void OnActivityExecutionContextLoad(IServiceProvider provider)
{
I = I * 10; //I is still 0
base.OnActivityExecutionContextLoad(provider);
I = I * 10; //I is still 0
}
private void codeActivity1_ExecuteCode(object sender, EventArgs e)
{
DataAccess.WriteToDummyData(ConnectionString, "Pinnacle From Code Activity " + I);
//I is now magically '8' what the heck set this?
}
任何人都对这些参数的实例化/绑定/设置发生在工作流程生命周期的哪个位置有任何想法。