当前位置: 首页>>代码示例>>C#>>正文


C# NativeActivityContext.Resolve方法代码示例

本文整理汇总了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);
        }
开发者ID:jatinbhole,项目名称:NTFE-BPM,代码行数:26,代码来源:SubProcess.cs

示例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();
        }
开发者ID:jatinbhole,项目名称:NTFE-BPM,代码行数:54,代码来源:Server.cs


注:本文中的NativeActivityContext.Resolve方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。