Ejemplo n.º 1
0
        private static List <DataSyncService> LoadService(string[] files)
        {
            List <DataSyncService> serviceList = new List <DataSyncService>();

            foreach (string cfg in files)
            {
                AppConfigProvider provider = new AppConfigProvider(cfg);
                if (!provider.CanAccess)
                {
                    provider.Dispose();
                    //log.Debug(string.Format("加载服务:[{0}]失败,配置文件不可读!", Path.GetFileNameWithoutExtension(cfg)));
                    continue;
                }

                Setting setting = new Setting();
                setting.Initialize(provider);
                setting.Name = Path.GetFileNameWithoutExtension(cfg);
                DataSyncService service;

                #region 加载终端数据解释器
                if (setting.ServiceAssembly == null || setting.ServiceAssembly == string.Empty)
                {
                    throw new Exception("解析服务[{0},必须加载服务配置ServiceAssembly!".format(setting.Name));
                }
                else
                {
                    try
                    {
                        service = (DataSyncService)AssemblyHelper.CreateInstance(setting.ServiceAssembly.Split(','));
                        if (service == null)
                        {
                            throw new Exception("解析服务[{0},无法加载!找不到指定的程序集:{1}".format(setting.Name, setting.ServiceAssembly));
                        }
                        service.Initialize(provider);
                    }
                    catch (Exception ex)
                    {
                        throw new Exception("解析服务[{0},在加载时发生错误!".format(setting.Name), ex);
                    }
                }
                #endregion

                serviceList.Add(service);
            }
            return(serviceList);
        }
Ejemplo n.º 2
0
        List <IService> LoadService(string[] files)
        {
            List <IService> serviceList = new List <IService>();

            foreach (string cfg in files)
            {
                AppConfigProvider provider = new AppConfigProvider(cfg);
                if (!provider.CanAccess)
                {
                    provider.Dispose();
                    //winLOG.Write($"加载服务:[{Path.GetFileNameWithoutExtension(cfg)}]失败,配置文件不可读!");
                    continue;
                }

                IConfig setting = new IConfig();
                setting.Initialize(provider);
                setting.Name = Path.GetFileNameWithoutExtension(cfg);
                IService service;

                #region 加载终端数据解释器
                if (setting.ServiceAssembly == null || setting.ServiceAssembly == string.Empty)
                {
                    throw new Exception($"解析服务[{setting.Name},必须加载服务配置ServiceAssembly!");
                }
                else
                {
                    try
                    {
                        service = (IService)AssemblyHelper.CreateInstance(setting.ServiceAssembly.Split(','));
                        if (service == null)
                        {
                            throw new Exception($"解析服务[{setting.Name},无法加载!找不到指定的程序集:{setting.ServiceAssembly}");
                        }
                        service.Initialize(provider);
                    }
                    catch (Exception ex)
                    {
                        throw new Exception($"解析服务[{setting.Name},在加载时发生错误!", ex);
                    }
                }
                #endregion

                serviceList.Add(service);
            }
            return(serviceList);
        }