代码之家  ›  专栏  ›  技术社区  ›  ActiveX

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

  •  0
  • ActiveX  · 技术社区  · 1 年前

    全部的

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

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

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

    2 回复  |  直到 1 年前
        1
  •  0
  •   Brian Parker    1 年前

    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

        2
  •  0
  •   ActiveX    1 年前

    使用wwwroot/appsettings.json文件。那里的配置被加载到客户端的Program.cs中,正如社区所评论的那样。