本文整理汇总了C#中NativeActivityContext.Resolve方法的典型用法代码示例。如果您正苦于以下问题:C# NativeActivityContext.Resolve方法的具体用法?C# NativeActivityContext.Resolve怎么用?C# NativeActivityContext.Resolve使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NativeActivityContext
的用法示例。
在下文中一共展示了NativeActivityContext.Resolve方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnBookmarkCallback
private void OnBookmarkCallback(NativeActivityContext context, Bookmark bookmark)
{
var log = context.Resolve<ILoggerFactory>() != null
? context.Resolve<ILoggerFactory>().Create(typeof(SubProcess))
: null;
var parser = context.Resolve<IScriptParser>();
var extension = context.GetExtension<DataFieldExtension>();
//完成规则解析
if (this.Result != null
&& parser != null
&& this.FinishRule != null
&& this.FinishRule.Count > 0)
{
foreach (var i in this.FinishRule)
if (parser.EvaluateRule(i.Value, extension))
{
this.Result.Set(context, i.Key);
if (log != null)
log.InfoFormat("SubProcess节点完成规则“{0}”测试通过,将进入节点“{1}”", i.Value, i.Key);
break;
}
}
//所有逻辑完成才可删除,若上述逻辑失败则将此书签用于错误恢复
context.RemoveBookmark(bookmark);
}
示例2: ExecuteBody
protected override void ExecuteBody(NativeActivityContext context)
{
var log = context.Resolve<ILoggerFactory>() == null
? null
: context.Resolve<ILoggerFactory>().Create(typeof(Server));
//创建server节点实例
var server = context.GetExtension<ServerExtension>().AddServer(context, this.DisplayName, this.FlowNodeIndex);
var data = context.GetExtension<DataFieldExtension>();
//设置当前节点索引
data.SetCurrentNode(this.FlowNodeIndex);
var serverScript = this.Script == null ? null : this.Script.Get(context);
var parser = context.Resolve<IScriptParser>();
#region 执行内容解析
if (!string.IsNullOrEmpty(serverScript))
{
var result = parser == null
? serverScript
: parser.Evaluate(serverScript, context.GetExtension<DataFieldExtension>());
if (this.To != null)
{
this.To.Set(context, result);
//更新到流程变量中
data.Set(this._to, result);
}
log.InfoFormat("Server节点执行内容:{0},返回:{1} {2}"
, serverScript
, result
, this.To == null ? "" : "将返回值写入流程变量" + this._to);
}
#endregion
#region 完成规则解析
if (this.Result != null
&& parser != null
&& this.FinishRule != null
&& this.FinishRule.Count > 0)
{
foreach (var i in this.FinishRule)
if (parser.EvaluateRule(i.Value, data))
{
this.Result.Set(context, i.Key);
log.InfoFormat("Server节点完成规则“{0}”测试通过,将进入节点“{1}”", i.Value, i.Key);
break;
}
}
#endregion
//置为完成
server.SetAsComplete();
}