【.Net |minimal hosting model 】Program.cs 里面的不同写法

这篇具有很好参考价值的文章主要介绍了【.Net |minimal hosting model 】Program.cs 里面的不同写法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文介绍.net6.0中引入的minimal hosting model和如何将.net6.0以前的版本转换成6.0

1. minimal hosting model长啥样

在入门.net的过程中,我发现program.cs里面的写法有些是长这样的:

var builder = WebApplication.CreateBuilder(args);

builder.Configuration.AddIniFile("appsettings.ini");

var app = builder.Build();

有些是长这样的

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
}

后者看起来更正式一点,所以我以为第一种是闹着玩的,真正的项目是不会这么用的,但是当我仔细看官方文档的时候发现,其实是不同版本的aps.net的写法,第一种是net6.0的,第二种是.net5.0的。

2. 为何引入minimal hosting model

这个结果真是出乎我意料,所以我就去查了一下为啥要改成闹着玩的方式(其实这种方式由自己的名字:minimal hosting model),然后官方的回答是:简单
对比一下可以发现确实简单了很多,以下是两个等同的配置,在.net5.0的时候是:

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<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.AddRazorPages();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/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.UseRouting();

        app.UseAuthorization();

        app.MapRazorPages();
    }
}

很长,但是有用的就那么几句,再来看看.net6.0的:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddRazorPages();

var app = builder.Build();

if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/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.UseRouting();

app.UseAuthorization();

app.MapRazorPages();

app.Run();

刚好把有用的几句摘抄出来了,所以新的版本确实更简单了

3.如何转换成minimal hosting model

重要的就两个:
IServiceCollection
另一个是IApplicationBuilder 和IWebHostEnvironment
转成6.0就是
builder.Services
和app和app.Environment

参考
https://gist.github.com/davidfowl/0e0372c3c1d895c3ce195ba983b1e03d#custom-dependency-injection-container文章来源地址https://www.toymoban.com/news/detail-402818.html

到了这里,关于【.Net |minimal hosting model 】Program.cs 里面的不同写法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity里面CG和HLSL在写法上的一些区别

    回到目录 大家好,我是阿赵。这里继续讲URP相关的内容。 这次想讲的是CG和HLSL在写法上的一些区别。 首先,基本上大家都知道的事情再说一遍。 三种Shader编程语言: 1、基于OpenGL的 OpenGL Shading Language ,缩写 GLSL 2、基于DirectX的 High Level Shading Language ,缩写 HLSL 3、基于NVIDIA的

    2024年02月15日
    浏览(21)
  • 后端 .net7 Minimal API 限流中间件(微信小程序无师自通十)

            我的微信小程序使用.net7 Minimal API 作为后端,当服务器摆上公网后,可以观察到很多的攻击行为和暴力访问。所以,我需要使用微软的限流中间件部署相应的功能在服务器上 : AddFixedWindowLimiter using Microsoft.AspNetCore.RateLimiting; using System.Threading.RateLimiting; 后端

    2024年02月12日
    浏览(29)
  • 如何打开hosts文件往里面添加GitHub相应代码加速其启动

    首先来说hosts文件一般位于路径C:WindowsSystem32driversetc中 hosts的作用有: 1. 加快域名解析作用 我们会经常访问网站,那么我们则可以通过hosts文件来配置域名以及IP之间的关系,提高域名解析速度。这主要是因为两者之间的映射关系,简单来说就是我们输入域名计算机就能很

    2024年01月22日
    浏览(33)
  • .Net 里面WhenAll的解释和用法

    在.NET中,WhenAll 是一个与异步编程相关的扩展方法,它属于 System.Threading.Tasks 命名空间下的 TaskExtensions 类。这个方法主要用于处理一组 Task 对象,并等待它们全部完成。当所有任务都完成时,WhenAll 将返回一个包含所有任务结果的 TaskTask[] 对象。 解释 WhenAll 方法用于并行执行

    2024年04月15日
    浏览(32)
  • L2CS-Net: 3D gaze estimation

    论文地址:L2CS-Net: Fine-Grained Gaze Estimation in Unconstrained Environments 论文代码:https://github.com/ahmednull/l2cs-net 论文出处:arXiv,2022 论文单位:Otto-von-Guericke-University, Magdeburg, Germany 人类的注视(gaze)是在人机交互和虚拟现实等各种应用中使用的关键线索。 近年来,卷积神经网络

    2024年02月14日
    浏览(26)
  • RDIFramework.NET CS敏捷开发框架 V6.0发布(支持.NET6+、Framework双引擎,全网唯一)

    全新RDIFramework.NET V6.0 CS敏捷开发框架发布,全网唯一支持.NET6+,Framework双引擎,降低开发成本,提高产品质量,提升用户体验与开发团队稳定性,做软件就选RDIFramework.NET开发框架。 RDIFramework.NET C/S敏捷开发框架 ,是我司重磅推出的基于.NET的快速信息化系统开发、整合框架,

    2024年02月15日
    浏览(31)
  • ASP.NET基于cs的电子邮件简单收发系统设计与实现(源代码+论文)

    电子邮件作为互联网中交换信息广泛的通信工具之一,如今都已被广大用户接受。 早期的电子邮件只是从一个计算机终端向另外一个计算机终端传送文本信息,而现在的电子邮件不仅可以发送文本信息,还可以传送声音、图片、文档等多种信息。很多邮件邮件客户端软件不断

    2024年02月08日
    浏览(42)
  • 【pytorch】同一个模型model.train()和model.eval()模式下的输出完全不同

    测试时为什么要使用model.eval() - 小筱痕 - 博客园 (cnblogs.com) 输出不同的原因是由于student模型中的某些层的行为不同。一些层,如dropout和batch normalization,在训练和评估过程中的行为是不同的。 在训练过程中,dropout层会随机将一部分输入置为零,这有助于防止过拟合。dropou

    2024年02月12日
    浏览(39)
  • Git报错:could not resolve host: gitcode.net解决

    在执行git pull origin master的时候出现了报错:could not resolve host: gitcode.net 解决方法: 1.win+r 输入cmd进入命令行 2.输入ping gitcode.net 然后回车 3.找到Git目录下的etc文件里面的hosts,用记事本打开  4.把域名和IP地址添加到hosts配置文件中  5.再次执行Git命令即可  

    2024年02月15日
    浏览(38)
  • 解析不同种类的StableDiffusion模型Models,再也不用担心该用什么了

    Stable Diffusion是一个基于Latent Diffusion Models(潜在扩散模型,LDMs)的文图生成(text-to-image)模型。具体来说,Stable Diffusion在 LAION-5B 的一个子集上训练了一个Latent Diffusion Models,该模型专门用于文图生成。Latent Diffusion Models通过在一个潜在表示空间中迭代“去噪”数据来生成图

    2023年04月19日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包