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)); } }
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>()); }
public void Execute(IConfigsType dictData) { using (IEnumerator <IWebApiBoot> enumerator = ContainerSingleton.Instance.ResolveAll <IWebApiBoot>().GetEnumerator()) { while (enumerator.MoveNext()) { enumerator.Current.Load(dictData); } } }
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(); }); }
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); } } }
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); } }
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)); }
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); } }
public server(IConfigsType config) { _config = config; }
public void Execute(IConfigsType dictData) { var t = dictData.Get("Cicada.DI.AutoRegisterByProductName"); Console.WriteLine(t); }