using JT808.DotNetty.Codecs; using JT808.DotNetty.Configurations; using JT808.DotNetty.Handlers; using JT808.DotNetty.Interfaces; using JT808.DotNetty.Internal; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Hosting; using Newtonsoft.Json; using System; using System.Reflection; using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("JT808.DotNetty.Test")] namespace JT808.DotNetty { public static class JT808DotnettyExtensions { static JT808DotnettyExtensions() { JsonSerializerSettings setting = new JsonSerializerSettings(); JsonConvert.DefaultSettings = new Func(() => { //日期类型默认格式化处理 setting.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; setting.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat; setting.DateFormatString = "yyyy-MM-dd HH:mm:ss"; setting.NullValueHandling = NullValueHandling.Include; return setting; }); } public static IHostBuilder UseJT808Host(this IHostBuilder builder) { return builder.ConfigureServices((hostContext, services) => { services.Configure(hostContext.Configuration.GetSection("JT808Configuration")); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddScoped(); services.TryAddScoped(); services.TryAddScoped(); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddScoped(); services.AddHostedService(); services.AddHostedService(); }); } } }