本文整理汇总了C#中ActivityInstance.registExtension方法的典型用法代码示例。如果您正苦于以下问题:C# ActivityInstance.registExtension方法的具体用法?C# ActivityInstance.registExtension怎么用?C# ActivityInstance.registExtension使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ActivityInstance
的用法示例。
在下文中一共展示了ActivityInstance.registExtension方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: NetInstance
/// <summary>wangmj 初始化一个工作流网实例,将引擎的扩展属性,注入到对应的工作流元素中</summary>
/// <param name="process"></param>
/// <param name="kenelExtensions"></param>
public NetInstance(WorkflowProcess process, Dictionary<String, List<IKernelExtension>> kenelExtensions)
{
this.workflowProcess = process;
//开始节点
StartNode startNode = workflowProcess.StartNode;
StartNodeInstance = new StartNodeInstance(startNode);
List<IKernelExtension> extensionList = kenelExtensions[StartNodeInstance.ExtensionTargetName];
for (int i = 0; extensionList != null && i < extensionList.Count; i++)
{
IKernelExtension extension = extensionList[i];
StartNodeInstance.registExtension(extension);
}
//this.StartNodeInstance = StartNodeInstance; 自身赋值自身没用。
wfElementInstanceMap.Add(startNode.Id, StartNodeInstance);
//活动节点activity
List<Activity> activities = workflowProcess.Activities;
for (int i = 0; i < activities.Count; i++)
{
Activity activity = (Activity)activities[i];
ActivityInstance activityInstance = new ActivityInstance(activity);
extensionList = kenelExtensions[activityInstance.ExtensionTargetName];
for (int j = 0; extensionList != null && j < extensionList.Count; j++)
{
IKernelExtension extension = extensionList[j];
activityInstance.registExtension(extension);
}
wfElementInstanceMap.Add(activity.Id, activityInstance);
}
//同步器节点
List<Synchronizer> synchronizers = workflowProcess.Synchronizers;
for (int i = 0; i < synchronizers.Count; i++)
{
Synchronizer synchronizer = (Synchronizer)synchronizers[i];
SynchronizerInstance synchronizerInstance = new SynchronizerInstance(synchronizer);
extensionList = kenelExtensions[synchronizerInstance.ExtensionTargetName];
for (int j = 0; extensionList != null && j < extensionList.Count; j++)
{
IKernelExtension extension = extensionList[j];
synchronizerInstance.registExtension(extension);
}
wfElementInstanceMap.Add(synchronizer.Id, synchronizerInstance);
}
//结束节点
List<EndNode> endNodes = workflowProcess.EndNodes;
// List<EndNodeInstance> endNodeInstances = netInstance.getEndNodeInstances();
for (int i = 0; i < endNodes.Count; i++)
{
EndNode endNode = endNodes[i];
EndNodeInstance endNodeInstance = new EndNodeInstance(endNode);
// endNodeInstances.add(endNodeInstance);
extensionList = kenelExtensions[endNodeInstance.ExtensionTargetName];
for (int j = 0; extensionList != null && j < extensionList.Count; j++)
{
IKernelExtension extension = extensionList[j];
endNodeInstance.registExtension(extension);
}
wfElementInstanceMap.Add(endNode.Id, endNodeInstance);
}
//转移线
List<Transition> transitions = workflowProcess.Transitions;
for (int i = 0; i < transitions.Count; i++)
{
Transition transition = (Transition)transitions[i];
TransitionInstance transitionInstance = new TransitionInstance(transition);
String fromNodeId = transition.FromNode.Id;
if (fromNodeId != null)
{
INodeInstance enteringNodeInstance = (INodeInstance)wfElementInstanceMap[fromNodeId];
if (enteringNodeInstance != null)
{
enteringNodeInstance.AddLeavingTransitionInstance(transitionInstance);
transitionInstance.EnteringNodeInstance=enteringNodeInstance;
}
}
String toNodeId = transition.ToNode.Id;
if (toNodeId != null)
{
INodeInstance leavingNodeInstance = (INodeInstance)wfElementInstanceMap[toNodeId];
if (leavingNodeInstance != null)
{
leavingNodeInstance.AddEnteringTransitionInstance(transitionInstance);
transitionInstance.LeavingNodeInstance=leavingNodeInstance;
}
}
extensionList = kenelExtensions[transitionInstance.ExtensionTargetName];
for (int j = 0; extensionList != null && j < extensionList.Count; j++)
{
IKernelExtension extension = extensionList[j];
transitionInstance.registExtension(extension);
}
//.........这里部分代码省略.........