/// ///////////////////////////////////////
 /// 以下为本Package自己的任务
 private void CollectActionsInOtherPackage(BaseProfile profile)
 {
     // 整合别的包里面的Action
     foreach (Type type in profile.GetAllTypes())
     {
         if (type.IsSubclassOf(typeof(BaseAction)))
         {
             ActionsManagement.AddActionType(type.Name, type);
         }
         else if (type.IsSubclassOf(typeof(DataSource)))
         {
             DataSourceManagement.AddDataSourceType(type.Name, type);
         }
     }
 }
 private void CollectActionsInSelfPackage()
 {
     // 整合自己包里面的Action
     foreach (Type type in GetAllTypes())
     {
         if (type.IsSubclassOf(typeof(BaseAction)))
         {
             ActionsManagement.AddActionType(type.Name, type);
         }
         else if (type.IsSubclassOf(typeof(DataSource)))
         {
             DataSourceManagement.AddDataSourceType(type.Name, type);
         }
     }
 }
        private void LoadDataSourceFromXml(IEnumerable level1Node)
        {
            #region datasources

            foreach (XmlNode level2Node in level1Node)
            {
                // DataSource
                if (level2Node.NodeType == XmlNodeType.Comment)
                {
                    continue;
                }

                var level2Item = (XmlElement)level2Node;
                if (!string.Equals(level2Item.Name.ToLower(), "DataSource",
                                   StringComparison.CurrentCultureIgnoreCase))
                {
                    continue;
                }
                //DataSource source = DataSource.CreateFromConfig(level2_node, this);

                var type   = level2Item.GetAttribute("Type");
                var name   = level2Item.GetAttribute("Name");
                var source = DataSourceManagement.CreateDataSource(type, name, this);

                foreach (var dataSource in _machineDataSources)
                {
                    if (dataSource.SourceName == source.SourceName)
                    {
                        throw new Exception("DataSource 加载出错:名字重复");
                    }
                }

                if (source.LoadFromConfig(level2Node))
                {
                    _machineDataSources.Add(source); //增加到数据源集合
                }
                else
                {
                    throw new Exception("DataSource 加载出错");
                }
            }

            #endregion
        }