예제 #1
0
        public IAction CreateNewCopy()
        {
            ActionAssignInstance a = new ActionAssignInstance(_class);

            a._desc       = _desc;
            a._name       = _name;
            a._actsHolder = _actsHolder;
            if (_var != null)
            {
                a._var = (LocalVariable)_var.Clone();
            }
            a._varId       = _varId;
            a._scopeMethod = _scopeMethod;
            a._valType.CopyData(_valType);
            a._val.CopyData(_val);
            if (_condition != null)
            {
                a._condition = (ExpressionValue)_condition.Clone();
            }
            a._webActType   = _webActType;
            a._breakAfter   = _breakAfter;
            a._breakBefore  = _breakBefore;
            a._valueChanged = _valueChanged;
            a._reader       = _reader;
            a._writer       = _writer;
            a.ActionId      = (UInt32)(Guid.NewGuid().GetHashCode());
            return(a);
        }
        public IAction CreateNewCopy()
        {
            MethodAction a = (MethodAction)Activator.CreateInstance(this.GetType(), Owner);

            a.MemberId    = (UInt32)(Guid.NewGuid().GetHashCode());
            a.Description = this.Description;
            if (string.IsNullOrEmpty(MethodName))
            {
                a.MethodName = "Action" + Guid.NewGuid().GetHashCode().ToString("x");
            }
            else
            {
                if (MethodName.Length > 30)
                {
                    a.MethodName = MethodName.Substring(0, 30) + Guid.NewGuid().GetHashCode().ToString("x");
                }
                else
                {
                    a.MethodName = MethodName + "_" + Guid.NewGuid().GetHashCode().ToString("x");
                }
            }
            if (_returnReceiver != null)
            {
                a._returnReceiver = (IObjectPointer)_returnReceiver.Clone();
            }
            if (_condition != null)
            {
                a._condition = (ExpressionValue)_condition.Clone();
            }
            return(a);
        }