C# .NET5 Startup介绍

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.OpenApi.Models;
using System;
using System.IO;
using System.Reflection;

namespace MEAS
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        //解决有没有的问题--服务,配置服务
        public void ConfigureServices(IServiceCollection services)
        {

            services.AddControllers();
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo { Title = "MEAS", Version = "v1" });

                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.XML";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                //... and tell Swagger to use those XML comments.
                c.IncludeXmlComments(xmlPath);
            });
            services.AddMvc().AddWebApiConventions();//解决返回值是HttpResponseMessage 自己的 json 序列化数据:

            //services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Latest).AddJsonOptions(option =>
            //{
            //    //原样输出,默认会把首字母小写
            //    option.JsonSerializerOptions.PropertyNamingPolicy = null;
            //});

        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        //解决需不需要的问题--请求处理--中间件,,有顺序要求
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            //env.IsProduction
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
               
            }
            app.UseSwagger();
            app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "MEAS v1"));//发布之后的版本

            //app.UseHttpsRedirection();   解决发布后warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3]
            //Failed to determine the https port for redirect这个问题.
            //分配路由
            app.UseRouting();
            //认证
            app.UseAuthentication();
            //授权
            app.UseAuthorization();
            //端点
            app.UseEndpoints(endpoints =>
            {
                //控制器路由
                endpoints.MapControllers();
            });
        }
    }
}

  

上一篇:2021-09-17


下一篇:.net5调用WebService简单事例