全部,
我们有一堆在客户端运行的 WASM 组件。他们使用 HttpClient 将请求发送到服务器。 HTTP 客户端需要服务器的 BaseAddress。我们需要从配置文件(例如 settings.json)在客户端上执行的 Program.cs 中初始化 BaseAddress。这显然是必需的,因为每个客户端安装都会有不同的服务器 URL。实现这一目标的最佳方法是什么?
请记住,此初始化代码在客户端上运行,此时必须设置服务器 URL。
也许可以让.net下载settings.json(下载wasm运行时/dll时)到客户端并在Program.cs文件逻辑中读取它?
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();
}
}