private void LoadActionsFromXml(XmlNode subNode)
        {
            foreach (XmlNode ac in subNode)
            {
                if (ac is XmlComment || ac.Name != "Action")
                {
                    continue;
                }
                var level2Item = (XmlElement)ac;
                var name       = level2Item.GetAttribute("Name");
                var actionType = level2Item.GetAttribute("Type");
                var action     = ActionsManagement.CreateAction(actionType, name);

                try
                {
                    action.LoadFromConfig(level2Item);
                    action.ActionContainer = this;
                    AddAction(action);
                }
                catch (Exception e)
                {
                    Log.Error($"加载CommonResource: {ResourceName} Action:{name}出错,{e.Message}");
                }
            }
        }
        //public abstract void CreateActions();

        public BaseAction GetAction(string name)
        {
            if (_actionNames.Contains(name))
            {
                var action = ActionsManagement.CreateAction(name, name);
                action.ActionContainer = this;
                return(action);
            }

            return(_actions[name]);
        }
        private void LoadActionsFromXml(IEnumerable level1Node)
        {
            #region actions

            foreach (XmlNode level2Node in level1Node)
            {
                // level2 --  "actions"

                //add
                if (level2Node.NodeType == XmlNodeType.Comment)
                {
                    continue;
                }
                //add:gu 20170223

                var level2Item = (XmlElement)level2Node;

                // 动态创建Action
                var name       = level2Item.GetAttribute("Name");
                var actionType = level2Item.GetAttribute("Type");

                var action = (MachineAction)ActionsManagement.CreateAction(actionType, name);
                action.OwnerMachine = this;

                if (action.LoadFromConfig(level2Item))
                {
                    // 加入到Machine的Action集合
                    try
                    {
                        AddAction(action);
                    }
                    catch (Exception ex)
                    {
                        Log.Error($"加载机器{ResourceName} 的Action:{name}出错:{ex}");
                    }
                }
                else
                {
                    Log.Error($"加载机器{ResourceName} 的Action:{name}出错");
                }
            }

            #endregion
        }