如何从某种配置文件进行 Blazor WASM(客户端)初始化

问题描述 投票:0回答:1

全部,

我们有一堆在客户端运行的 WASM 组件。他们使用 HttpClient 将请求发送到服务器。 HTTP 客户端需要服务器的 BaseAddress。我们需要从配置文件(例如 settings.json)在客户端上执行的 Program.cs 中初始化 BaseAddress。这显然是必需的,因为每个客户端安装都会有不同的服务器 URL。实现这一目标的最佳方法是什么?

请记住,此初始化代码在客户端上运行,此时必须设置服务器 URL。

也许可以让.net下载settings.json(下载wasm运行时/dll时)到客户端并在Program.cs文件逻辑中读取它?

c# asp.net-core blazor blazor-webassembly
1个回答
0
投票

AppSettings.json
放置在WASM项目的wwwroot文件夹中

{
  "ServerBaseURl":  "http://localhost:5000"
}
public class Program
{
    public static async Task Main(string[] args)
    {
        var builder = WebAssemblyHostBuilder.CreateDefault(args);
        builder.RootComponents.Add<App>("#app");
        builder.RootComponents.Add<HeadOutlet>("head::after");

        var baseUrl = builder.Configuration.GetValue<string>("ServerBaseURl") 
            ?? throw new Exception("Unable to read ServerBaseURl..");

        builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(baseUrl) });

        await builder.Build().RunAsync();
    }
}

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.