Beispiel #1
0
 public void Load(IConfigsType configurationDataRespository)
 {
     if (configurationDataRespository.Get(EnableConfigName) == "true")
     {
         Swashbuckle.Application.HttpConfigurationExtensions.EnableSwagger(
             GlobalConfiguration.Configuration, delegate(SwaggerDocsConfig c)
         {
             SetVersionAndComments(c, (configurationDataRespository.Get(VersionConfigName) ?? VersionDefault)
                                   , (configurationDataRespository.Get(TitleConfigName) ?? TitleDefault));
             c.IgnoreObsoleteActions();
             c.IgnoreObsoleteProperties();
         }).EnableSwaggerUi(delegate(SwaggerUiConfig c)
         {
             //************注   意*****************
             //1、两个js文件属性为嵌入资源
             //2、Net.Boot.Aspnet.Api为项目命名空间
             //3、Docs.Translator.js 为文件所在目录
             Assembly assembly = base.GetType().Assembly;
             c.InjectJavaScript(assembly, "Net.Boot.Aspnet.Api.Docs.Translator.js");
             c.InjectJavaScript(assembly, "Net.Boot.Aspnet.Api.Docs.AuthToken.js");
         });
     }
     if (configurationDataRespository.Get(IsDefaultPageConfigName) == "true")
     {
         DynamicModuleUtility.RegisterModule(typeof(DocumnetHome));
     }
 }
Beispiel #2
0
        public ClientEndpointInfo[] Load(IConfigsType dictData)
        {
            var dictionary = new Dictionary <string, ClientEndpointInfo>();

            foreach (string str in dictData.GetKeys())
            {
                Match match = Regex.Match(str, @"^Cicada.Rpc.Client.Endpoints.(\w+).([\w.]+)$", RegexOptions.IgnoreCase);
                if (match.Success && (match.Groups.Count == 3))
                {
                    ClientEndpointInfo info;
                    if (dictionary.ContainsKey(match.Groups[1].Value))
                    {
                        info = dictionary[match.Groups[1].Value];
                    }
                    else
                    {
                        info = new ClientEndpointInfo();
                        dictionary.Add(match.Groups[1].Value, info);
                    }
                    string key = match.Groups[2].Value.ToLower();
                    if (!FillDataStrategies.ContainsKey(key))
                    {
                        throw new InvalidOperationException(string.Format("未知的配置,请检查节点{0}是否配置正确", str));
                    }
                    if (!FillDataStrategies[key].Fill(str, key, dictData.Get(str), info))
                    {
                        throw new InvalidOperationException(string.Format("错误的配置,请检查节点{0}是否配置正确", str));
                    }
                }
            }
            return(dictionary.Values.ToArray <ClientEndpointInfo>());
        }
Beispiel #3
0
 public void Execute(IConfigsType dictData)
 {
     using (IEnumerator <IWebApiBoot> enumerator = ContainerSingleton.Instance.ResolveAll <IWebApiBoot>().GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             enumerator.Current.Load(dictData);
         }
     }
 }
Beispiel #4
0
 public void Execute(IConfigsType dictData)
 {
     AppDomain.CurrentDomain.UnhandledException += (o, e) =>
     {
         var exception = (Exception)e.ExceptionObject;
         if (exception.GetBaseException() == null)
         {
             return;
         }
         //LogBuilder.Create("Cicada.Boot").Error(exp, "AppDomain未处理异常。");
     };
 }
        //public Cicada.Rpc.ServiceCentre.ConnectionFailProcessMode ConnectionFailProcessMode { get; set; }

        public ServerEndPointConfig(IConfigsType configInfo)
        {
            _configInfo = configInfo;
            SetPort();
            SetPublishRespositoryServer();
            if (!string.IsNullOrEmpty(PublishRespositoryServer))
            {
                SetPublishName();
                SetPublishServer();
            }
            SetConnectionFailProcessMode();
        }
 public static void Run()
 {
     _Application.Run();
     HostFactory.Run(delegate(HostConfigurator x) {
         x.Service <IService>(delegate(ServiceConfigurator <IService> s) {
             s.ConstructUsing(delegate(HostSettings name) {
                 IService service = null;
                 try
                 {
                     service = ContainerSingleton.Instance.Resolve <IService>();
                 }
                 catch (Exception ex)
                 {
                     if (service == null)
                     {
                         string msg = "未能找到服务启动类,请确保您创建了IService接口的实现类";
                         throw new InvalidOperationException(msg);
                     }
                     else
                     {
                         throw new Exception(string.Format("服务启动异常:{0}", ex.Message));
                     }
                 }
                 return(service);
             });
             s.WhenStarted <IService>(tc => tc.Start());
             s.WhenStopped <IService>(tc => tc.Stop());
         });
         x.UseLinuxIfAvailable();
         IConfigsType local1 = ContainerSingleton.Instance.Resolve <IConfigsType>();
         string str          = local1.Get(ServiceNameConfigName);
         if (string.IsNullOrWhiteSpace(str))
         {
             string Msg = "请通过设置{0}配置项,为服务配置服务名称";
             throw new InvalidOperationException(string.Format(Msg, ServiceNameConfigName));
         }
         x.SetServiceName(str.Trim());
         string str2 = local1.Get(DisplayNameConfigName);
         if (!string.IsNullOrWhiteSpace(str2))
         {
             x.SetDisplayName(str2.Trim());
         }
         string str3 = local1.Get(DescriptionConfigName);
         if (!string.IsNullOrWhiteSpace(str3))
         {
             x.SetDescription(str3);
         }
         x.StartAutomatically();
         x.RunAsLocalSystem();
     });
 }
Beispiel #7
0
 public void Execute(IConfigsType dictData)
 {
     ClientEndpointInfo[] infoArray = _clientEndpointConfig.Load(dictData);
     if (infoArray.Length != 0)
     {
         ProxyGenerator generator = new ProxyGenerator();
         foreach (ClientEndpointInfo info in infoArray)
         {
             IInterceptor interceptor = new Interceptor(info);
             var          ProxyObject = generator.CreateInterfaceProxyWithoutTarget(info.ContractType, interceptor);
             ContainerSingleton.Instance.RegisterInstance(info.ContractType, ProxyObject);
         }
     }
 }
Beispiel #8
0
 public void Load(IConfigsType configurationDataRespository)
 {
     GlobalConfiguration.Configuration.Filters.Add(new WebApiErrorAttribute());
     GlobalConfiguration.Configuration.DependencyResolver = new ApiDependencyResolver();
     GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
         new IsoDateTimeConverter
     {
         DateTimeFormat = "yyyy-MM-dd HH:mm:ss"
     });
     if (configurationDataRespository.Get(IsActionTrack) == "true")
     {
         GlobalConfiguration.Configuration.Filters.Add(ContainerSingleton.Instance.Resolve <WebApiTrackAttribute>());
     }
     if (GlobalConfiguration.Configuration.Formatters.XmlFormatter != null)
     {
         GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
     }
 }
Beispiel #9
0
        public void Execute(IConfigsType dictData)
        {
            FilterAttributeFilterProvider item = FilterProviders.Providers.OfType <FilterAttributeFilterProvider>().FirstOrDefault();

            if (item != null)
            {
                FilterProviders.Providers.Remove(item);
            }
            FilterProviders.Providers.Add(new MvcFilterAttributeProvider());
            HandleErrorAttribute filter = GlobalFilters.Filters.OfType <HandleErrorAttribute>().FirstOrDefault();

            if (filter != null)
            {
                GlobalFilters.Filters.Remove(filter);
            }
            GlobalFilters.Filters.Add(new MvcHandleErrorAttribute());
            DependencyResolver.SetResolver(new MvcDependencyResolver());
            DynamicModuleUtility.RegisterModule(typeof(MvcApplactionHttpModule));
        }
Beispiel #10
0
        private static void ExecuteModules()
        {
            Type[] source = TypeFinder.GetTypes(typeof(IModuleType)).ToArray <Type>();
            //ILog log = LogBuilder.Create("Cicada.Boot");
            object[] args = new object[] { source.Length };
            //log.Trace("自动加载模块单元,共发现【{0}】个", args);
            IConfigsType config = ContainerSingleton.Instance.Resolve <IConfigsType>();

            foreach (IModuleType boot in (from impType in source.Where <Type>(new Func <Type, bool>(ModulesLoad.Where))
                                          .OrderBy <Type, int>(new Func <Type, int>(ModulesLoad.GetOrder))
                                          select(IModuleType) ContainerSingleton.Instance.Resolve(impType))
                     .ToArray <IModuleType>())
            {
                object[] objArray2 = new object[]
                {
                    boot.GetType().FullName
                };
                //log.Trace("加载模块,类型:{0}", objArray2);
                boot.Execute(config);
            }
        }
Beispiel #11
0
 public server(IConfigsType config)
 {
     _config = config;
 }
Beispiel #12
0
        public void Execute(IConfigsType dictData)
        {
            var t = dictData.Get("Cicada.DI.AutoRegisterByProductName");

            Console.WriteLine(t);
        }