/// <summary> 添加微服务客户端 </summary>
        /// <param name="services"></param>
        /// <param name="builderAction"></param>
        /// <param name="configAction"></param>
        /// <returns></returns>
        public static MicroBuilder AddMicroClient(this MicroBuilder services, Action <IMicroClientBuilder> builderAction, Action <SpearConfig> configAction = null)
        {
            //services.TryAddSingleton<Counter>();
            var config = SpearConfig.GetConfig();

            configAction?.Invoke(config);
            services.Services.AddSingleton(config);
            services.Services.AddProxy <ClientProxy>();
            builderAction.Invoke(services);
            return(services);
        }
        /// <summary> 开启微服务 </summary>
        /// <param name="provider"></param>
        /// <param name="addressAction"></param>
        /// <returns></returns>
        public static void UseMicroService(this IServiceProvider provider, Action <ServiceAddress> addressAction = null)
        {
            if (CurrentIocManager.IocManager == null)
            {
                CurrentIocManager.SetIocManager(new DefaultIocManager(provider));
            }

            var address = SpearConfig.GetConfig().Service;

            addressAction?.Invoke(address);
            var host = provider.GetService <IMicroHost>();

            Task.Factory.StartNew(async() => await host.Start(address));
        }
Пример #3
0
        private void RegistFromConfig()
        {
            var services = SpearConfig.GetConfig().Services;

            if (services.IsNullOrEmpty())
            {
                return;
            }
            foreach (var service in services)
            {
                if (service.Key.IsNullOrEmpty() || service.Value.IsNullOrEmpty())
                {
                    continue;
                }
                foreach (var address in service.Value)
                {
                    Regist(service.Key, address);
                }
            }
        }
Пример #4
0
 public JsonCodec(IMessageSerializer serializer, SpearConfig config = null) : base(serializer, config)
 {
 }
Пример #5
0
 protected DMessageCodec(IMessageSerializer serializer, SpearConfig config)
 {
     _serializer = serializer;
     _config     = config ?? new SpearConfig();
 }
Пример #6
0
 public ProtoBufferCodec(IMessageSerializer serializer, SpearConfig config = null) : base(serializer, config)
 {
 }