/// <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)); }
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); } } }
public JsonCodec(IMessageSerializer serializer, SpearConfig config = null) : base(serializer, config) { }
protected DMessageCodec(IMessageSerializer serializer, SpearConfig config) { _serializer = serializer; _config = config ?? new SpearConfig(); }
public ProtoBufferCodec(IMessageSerializer serializer, SpearConfig config = null) : base(serializer, config) { }