12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using Microsoft.AspNetCore.Builder;
- using Microsoft.AspNetCore.Http;
- using Microsoft.AspNetCore.Server.Kestrel.Core;
- using Microsoft.Extensions.DependencyInjection;
- using System;
- using System.Text.Encodings.Web;
- using System.Text.Json;
- using System.Text.Unicode;
- namespace Yunda.ISAS.DataMonitoringServer.WebApi
- {
- public class WebApiStartup
- {
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddMvc().AddJsonOptions(options =>
- {
- //格式化日期时间格式
- options.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter());
- //数据格式首字母小写
- options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
- //数据格式原样输出
- //options.JsonSerializerOptions.PropertyNamingPolicy = null;
- //取消Unicode编码
- options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
- //忽略空值
- options.JsonSerializerOptions.IgnoreNullValues = true;
- //允许额外符号
- options.JsonSerializerOptions.AllowTrailingCommas = true;
- //反序列化过程中属性名称是否使用不区分大小写的比较
- options.JsonSerializerOptions.PropertyNameCaseInsensitive = false;
- }); ;
- // If using Kestrel:
- //services.AddSingleton();
- services.Configure<KestrelServerOptions>(options =>
- {
- options.AllowSynchronousIO = true;
- });
- }
- public void Configure(IApplicationBuilder app)
- {
- app.UseRouting();
- app.UseEndpoints(endpoints =>
- {
- endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
- //区域路由
- endpoints.MapAreaControllerRoute(
- name: "areas",
- areaName: "areas",
- pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
- });
- app.Run(context =>
- {
- return context.Response.WriteAsync("datamonitor webapi startup !",encoding:System.Text.Encoding.Unicode);
- });
- }
- }
- public class DatetimeJsonConverter : System.Text.Json.Serialization.JsonConverter<DateTime>
- {
- public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
- {
- if (reader.TokenType == JsonTokenType.String)
- {
- if (DateTime.TryParse(reader.GetString(), out DateTime date))
- return date;
- }
- return reader.GetDateTime();
- }
- public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
- {
- writer.WriteStringValue(value.ToString("yyyy-MM-dd HH:mm:ss"));
- }
- }
- }
|