Я использую Blazor WebAssembly 3.2.0 Preview 3 / Stati c / Клиентская сторона
Сейчас я использую #if DEBUG #else #endif
для строковой переменной "backendUrl
». Я хотел бы загрузить этот параметр из appsettings. {Environment}. json.
Я могу получить конфигурацию после var host = builder.Build();
( информация из Microsoft Docs, см. Пример кода ниже и ссылка здесь выше ), но служба gRP C называется до этого.
Подробнее о настройке приложения. {Environment}. json в Blazor WebAssembly 3.2.0 Preview 3
Мой вопрос: возможно ли или я должен продолжать использовать #if DEBUG
и c. ( Я бы хотел использовать настройки приложений, когда это возможно где-нибудь в моем коде. )
Часть моей программы.cs
string backendUrl = string.Empty;
#if DEBUG
backendUrl = "https://localhost:5001"; // Local debug URL
#else
backendUrl = "https://<example>.com:5001"; // Production URL
#endif
builder.Services.AddSingleton(services =>
{
// Create a gRPC-Web channel pointing to the backend server.
// GrpcWebText is used because server streaming requires it. If server streaming is not used in your app
// then GrpcWeb is recommended because it produces smaller messages.
var httpClient = new HttpClient(new GrpcWebHandler(GrpcWebMode.GrpcWebText, new HttpClientHandler()));
var channel = GrpcChannel.ForAddress(backendUrl, new GrpcChannelOptions { HttpClient = httpClient });
return channel;
});
// load settings from appsettings.{environment}.json
// see: https://docs.microsoft.com/en-us/aspnet/core/blazor/dependency-injection?view=aspnetcore-3.1#add-services-to-an-app
var host = builder.Build();
var backendDomain = host.Configuration["Settings:BackEndDomain"];
Console.WriteLine($"Backend Domain: {backendDomain}");
await host.RunAsync();
// original
// await builder.Build().RunAsync();