在Blazor(服务器端(中Program.cs
和App.razor
有什么区别?我测试过,我知道App.razor
是在Program.cs
之后执行的,当我需要在应用程序启动之前执行一个方法时,我将该方法放入CreateHostBuilder
中。我应该在什么时候使用App.razor
和Program.cs
?我在Program.cs
中可以做什么而在App.razor
中不能做什么?(反之亦然(冒险是什么?
程序.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
}
应用程序剃刀
@code
{
protected override void OnInitialized()
{
await MethodAsync();
}
private static async Task MethodAsync()
{
//body
}
}
注意:C#代码的IM引用及其工作原理
Program.cs
设置的应用程序入口点
ASP.NET核心主机(Blazor服务器(
WebAssembly主机(Blazor WebAssembly(:此文件中的代码对于使用Blazor Web Assembly模板(blazorwasm(创建的应用程序是唯一的。
应用程序组件是应用程序的根组件。应用程序组件被指定为根组件集合(builder.RootComponents.Add("应用程序"(的应用程序DOM元素(…(。
添加和配置服务(例如,builder.Services.AddSingleton<IMyDependency,MyDependency>(((。
和
App.razor
使用路由器组件设置客户端路由的应用程序的根组件。路由器组件拦截浏览器导航并呈现与请求地址匹配的页面。