public static IJT808NettyBuilder AddJT808NettyCore(this IJT808Builder jt808Builder, Action <JT808Configuration> jt808Options, Newtonsoft.Json.JsonSerializerSettings settings = null) { if (settings != null) { JsonConvert.DefaultSettings = new Func <JsonSerializerSettings>(() => { settings.Converters.Add(new JsonIPAddressConverter()); settings.Converters.Add(new JsonIPEndPointConverter()); settings.Converters.Add(new ByteArrayHexConverter()); settings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; return(settings); }); } IJT808NettyBuilder nettyBuilder = new JT808NettyBuilderDefault(jt808Builder); nettyBuilder.JT808Builder.Services.Configure(jt808Options); nettyBuilder.JT808Builder.Services.TryAddSingleton <JT808AtomicCounterServiceFactory>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <JT808SessionManager>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <IJT808UnificationSendService, JT808UnificationSendService>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <IJT808SessionService, JT808SessionService>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <IJT808MsgProducer, JT808MsgProducerDefaultImpl>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <IJT808MsgReplyConsumer, JT808MsgReplyConsumerDefaultImpl>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <JT808MsgService>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <IJT808SessionProducer, JT808SessionProducerDefaultImpl>(); nettyBuilder.JT808Builder.Services.AddHostedService <JT808MsgReplyHostedService>(); return(nettyBuilder); }
public static IJT808NettyBuilder AddJT808NettyCore(this IJT808Builder jt808Builder, Action <JT808Configuration> jt808Options, Newtonsoft.Json.JsonSerializerSettings settings = null) { if (settings != null) { JsonConvert.DefaultSettings = new Func <JsonSerializerSettings>(() => { settings.Converters.Add(new JsonIPAddressConverter()); settings.Converters.Add(new JsonIPEndPointConverter()); settings.Converters.Add(new ByteArrayHexConverter()); settings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; return(settings); }); } IJT808NettyBuilder nettyBuilder = new JT808NettyBuilderDefault(jt808Builder); nettyBuilder.JT808Builder.Services.Configure(jt808Options); nettyBuilder.JT808Builder.Services.TryAddSingleton <IJT808SessionPublishing, JT808SessionPublishingEmptyImpl>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <IJT808DownlinkPacket, JT808DownlinkPacketEmptyImpl>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <IJT808UplinkPacket, JT808UplinkPacketEmptyImpl>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <IJT808SourcePackageDispatcher, JT808SourcePackageDispatcherEmptyImpl>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <JT808AtomicCounterServiceFactory>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <JT808TrafficServiceFactory>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <JT808SimpleSystemCollectService>(); return(nettyBuilder); }
public static IJT808NettyBuilder AddJT808NettyCore(this IJT808Builder jt808Builder, Action <JT808Configuration> jt808Options) { IJT808NettyBuilder nettyBuilder = new JT808NettyBuilderDefault(jt808Builder); nettyBuilder.JT808Builder.Services.Configure(jt808Options); nettyBuilder.JT808Builder.Services.TryAddSingleton <JT808AtomicCounterServiceFactory>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <JT808SessionManager>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <IJT808UnificationSendService, JT808UnificationSendService>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <IJT808SessionService, JT808SessionService>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <IJT808MsgProducer, JT808MsgProducerDefaultImpl>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <IJT808MsgReplyConsumer, JT808MsgReplyConsumerDefaultImpl>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <JT808MsgService>(); nettyBuilder.JT808Builder.Services.TryAddSingleton <IJT808SessionProducer, JT808SessionProducerDefaultImpl>(); nettyBuilder.JT808Builder.Services.AddHostedService <JT808MsgReplyHostedService>(); return(nettyBuilder); }