在Sample-ShoppingWeb的ShoppingCartStateMachine上有一个这样的配置来安排事件:
Schedule(() => CartExpired, x => x.ExpirationId, x =>
{
x.Delay = TimeSpan.FromSeconds(10);
x.Received = e => e.CorrelateById(context => context.Message.CartId);
});
请注意" x.Delay"属性,是在构造函数上设置的,但在我的情况下,我想通知dinamically时间延迟。
When(ApproveOrder)
.Then(context =>
{
context.Instance.EstimatedTime = context.Data.EstimatedTime;
context.Instance.Status = context.Data.Status;
})
...并使用" context.Data.EstimatedTime"设置计划事件。延迟,例如
有一种方法可以使用" Schedule"状态机构造函数类的声明?
答案 0 :(得分:1)
状态机中使用的When(ApproveOrder)
.Then(context => context.Instance.EstimatedTime = context.Data.EstimatedTime)
.Schedule(CartExpired, context => context.Instance.EstimatedTime)
扩展名已得到增强,以增加对动态延迟的支持。例如,您可以执行以下操作:
{{1}}
这将使用第二个参数的延迟,而不是创建计划时指定的延迟。