Program.cs和App.razor之间的区别

时间:2020-11-07 15:27:49

标签: razor blazor

Blazor(服务器端)中的Program.csApp.razor有什么区别?经过测试,我知道App.razor是在Program.cs之后执行的,当我需要在App启动之前执行一个方法时,我将该方法放入了CreateHostBuilder中。 我什么时候应该使用App.razorProgram.cs?我可以在Program.cs中做什么而不能在App.razor中做什么?(反之亦然)冒险是什么?

Program.cs

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

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

    private static async Task MethodAsync()
    {
        //body
    }

App.razor

@code
{
  protected override void OnInitialized()
  {
    await MethodAsync();
  }
  private static async Task MethodAsync()
  {
     //body
  }
}

注意: IM引用了C#代码及其工作方式

1 个答案:

答案 0 :(得分:0)

Program.cs

设置以下内容的应用入口点:

。 ASP.NET Core主机(Blazor服务器)

。 WebAssembly主机(Blazor WebAssembly):该文件中的代码对于使用Blazor WebAssembly模板(blazorwasm)创建的应用程序是唯一的。

。 App组件是应用程序的根组件。将App组件指定为根组件集合(builder.RootComponents.Add(“ app”))的app DOM元素(...)。

。服务已添加和配置(例如,builder.Services.AddSingleton ())。

App.razor

使用路由器组件设置客户端路由的应用程序的根组件。路由器组件拦截浏览器导航并呈现与请求地址匹配的页面。