【IT168技术文档】
EventHandlingScopeActivity活动包含一个主线子活动和一组事件处理活动 (EventHandlersActivity),它的主线子活动中只能包含一个子活动。它会执行其主子活动比如SequenceActivity。同时,可能会执行每个EventDrivenActivity,也可能不执行它们,这取决于在SequenceActivity 活动执行时是否发生了它们的事件,当主线活动执行完了整个EventHandlingScopeActivity活动也就结束了。
下面以例子来说明该活动的使用:
定义服务接口:
[ExternalDataExchange]
public interface IScopeDemo
{
void Started();
event EventHandler<ExternalDataEventArgs> EventOne;
event EventHandler<ExternalDataEventArgs> EventTwo;
event EventHandler<ExternalDataEventArgs> EventStop;
}
实现服务接口:
class ScopeDemoService:IScopeDemo
{
private Guid instanceId;
public void Started()
{
instanceId = WorkflowEnvironment.WorkflowInstanceId;
}
public event EventHandler<ExternalDataEventArgs> EventOne;
public event EventHandler<ExternalDataEventArgs> EventTwo;
public event EventHandler<ExternalDataEventArgs> EventStop;
public void OnEventOne()
{
if (EventOne != null)
{
EventOne(null, new ExternalDataEventArgs(instanceId));
}
}
public void OnEventTwo()
{
if (EventTwo != null)
{
EventTwo(null, new ExternalDataEventArgs(instanceId));
}
}
public void OnEventStop()
{
if (EventStop != null)
{
EventStop(null, new ExternalDataEventArgs(instanceId));
}
}
}