重新整理.net core 计1400篇[五] (.net core 修改为Startup模式 )

前言

随着不断的升级改版,我们离dotnet帮我们生成的文件中还差一步,那就是我们少了一个Startup,那么这个有什么用呢?让我们来补上it吧。

在此之前需要明白一件事,那就是Startup是一种约定,也就是说里面的方法,你找不到哪里去调用了他们,而是框架内部调用了他们,也就是常见的约定大于配置。

那么来看一下框架给了startup中一些什么样的约定特权吧。

正文

我找来了vs帮我们生成的startup:

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.Configure<CookiePolicyOptions>(options =>
		{
			// This lambda determines whether user consent for non-essential cookies is needed for a given request.
			options.CheckConsentNeeded = context => true;
			options.MinimumSameSitePolicy = SameSiteMode.None;
		});


		services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
		
	}

	// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
	public void Configure(IApplicationBuilder app, IHostingEnvironment env)
	{
		if (env.IsDevelopment())
		{
			app.UseDeveloperExceptionPage();
		}
		else
		{
			app.UseExceptionHandler("/Home/Error");
			// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
			app.UseHsts();
		}

		app.UseHttpsRedirection();
		app.UseStaticFiles();
		app.UseCookiePolicy();

		app.UseMvc(routes =>
		{
			routes.MapRoute(
				name: "default",
				template: "{controller=Home}/{action=Index}/{id?}");
		});
	}
}

可以看到里面主要是为我们配置:ConfigureServices和configure

前面我们介绍了他们,分别是ConfigureServices 是为我们注入服务,configure为我们的服务做配置,我现在将这个配置拷贝到前面做好的文件中,来看一下目录。


修改main:

static void Main(string[] args)
{
	WebHost.CreateDefaultBuilder().UseKestrel().UseUrls("http://0.0.0.0:10052;http://0.0.0.0:10051;").UseStartup<Startup>().Build().Run();
}

效果:那么他就会去执行Startup里面的函数:

现在已经完成了手动创建项目了。

后面为依赖反转。

posted @ 2020-05-14 15:39  敖毛毛  阅读(407)  评论(0编辑  收藏  举报