Startup.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using Microsoft.AspNetCore.Builder;
  2. using Microsoft.AspNetCore.Hosting;
  3. using Microsoft.AspNetCore.Mvc;
  4. using Microsoft.Extensions.Configuration;
  5. using Microsoft.Extensions.DependencyInjection;
  6. using Microsoft.Extensions.Hosting;
  7. using Vit.Extensions;
  8. namespace Did.Serslot.HelloWorld
  9. {
  10. public class Startup
  11. {
  12. public Startup(IConfiguration configuration)
  13. {
  14. Configuration = configuration;
  15. }
  16. public IConfiguration Configuration { get; }
  17. // This method gets called by the runtime. Use this method to add services to the container.
  18. public void ConfigureServices(IServiceCollection services)
  19. {
  20. services.AddControllers()
  21. .AddJsonOptions(options =>
  22. {
  23. //Json序列化全局配置
  24. #if NETCOREAPP3_0_OR_GREATER
  25. options.JsonSerializerOptions.AddConverter_Newtonsoft();
  26. options.JsonSerializerOptions.AddConverter_DateTime();
  27. options.JsonSerializerOptions.IncludeFields = true;
  28. //JsonNamingPolicy.CamelCase首字母小写(默认),null则为不改变大小写
  29. options.JsonSerializerOptions.PropertyNamingPolicy = null;
  30. //取消Unicode编码
  31. options.JsonSerializerOptions.Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(System.Text.Unicode.UnicodeRanges.All);
  32. //忽略空值
  33. options.JsonSerializerOptions.DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull;
  34. //options.JsonSerializerOptions.IgnoreNullValues = true;
  35. //允许额外符号
  36. options.JsonSerializerOptions.AllowTrailingCommas = true;
  37. #else
  38. //忽略循环引用
  39. options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
  40. //不更改元数据的key的大小写
  41. options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
  42. #endif
  43. });
  44. }
  45. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  46. public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  47. {
  48. if (env.IsDevelopment())
  49. {
  50. app.UseDeveloperExceptionPage();
  51. //app.UseSwagger();
  52. //app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "WebApplication1 v1"));
  53. }
  54. app.UseRouting();
  55. //app.UseAuthorization();
  56. app.UseEndpoints(endpoints =>
  57. {
  58. endpoints.MapControllers();
  59. });
  60. }
  61. }
  62. }