示例#1
0
        protected void variable_input_binding(Func <object> f, string codeString)
        {
            if (_curVar == null)
            {
                throw new Exception("input_binding only in variable def");
            }
            string k = DslUtil.TaskVarInBindingKey(_curTask != null ? _curTask.Id : _currentCompositeTask.Id, _curVar.Name);
            var    b = new DataBindingDef
            {
                BindType = DataBindingType.Expr,
                Source   = codeString,
                Target   = _curVar.Name
            };

            _variableBinds[k] = f;
            if (_curTask != null)
            {
                _curTask.AddInputDataBinding(b);
            }
            else if (_currentCompositeTask != null)
            {
                _currentCompositeTask.AddInputDataBinding(b);
            }
            else
            {
                throw new Exception();
            }
        }
示例#2
0
        protected void add_output_binding(string destinationVariable, Func <object> expression, string codeString)
        {
            var b = new DataBindingDef
            {
                BindType = DataBindingType.Expr,
                Source   = codeString,
                Target   = destinationVariable
            };
            var k = DslUtil.TaskVarOutBindingKey(_curTask != null ? _curTask.Id : _currentCompositeTask.Id, destinationVariable);

            _variableBinds[k] = expression;
            if (_curTask != null)
            {
                _curTask.AddOutputDataBinding(b);
            }
            else if (_currentCompositeTask != null)
            {
                _currentCompositeTask.AddOutputDataBinding(b);
            }
        }