繁体   English   中英

Appsetting.json 说没有找到尝试使用 Blazor WebAssembly

[英]Appsetting.json saying not found trying to use a Blazor WebAssembly

我正在开发一个原型应用程序。 我们在哪里使用新的 Blazor WebAssembly。 我要做的是访问我的 JSON 文件以访问我们设置的端点以进行 API 调用。 这是我目前拥有的

appsettings.json:

    "Endpoints": {
    "AuthEndpoint": "https://auth"
  }

程序.cs:

public static async Task Main(string[] args)
{
    var config = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json")
        .Build();
    //var endpointSettings = new EndpointSettings()
    //{
    //    AuthEndpoint = config["Endpoints:AuthEndpoint"]
    //};
    
    var builder = WebAssemblyHostBuilder.CreateDefault(args);
    builder.RootComponents.Add<App>("#app");

    builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) })
         .AddScoped<IAuthenticationService, AuthenticationService>()
         .AddTransient(_ =>
         {
             return config.GetSection("Endpoints")
                          .Get<EndpointSettings>();
         })
         .AddTransient<IAuthClient, AuthClient>();
    


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

当它在控制台日志中构建时,我收到此错误消息错误信息

我试图找出为什么会发生这种情况以及我能做些什么来解决它

例如:

public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args)
                .Build()
                .Run();
        }

        
        public static IWebAssemblyHostBuilder CreateHostBuilder(string[] args) =>
            BlazorWebAssemblyHost.CreateDefaultBuilder()
                .UseBlazorStartup<Startup>();
        
    }

public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton(GetConfiguration());
        }
        public void Configure(IComponentsApplicationBuilder app )
        {
            app.AddComponent<App>("app");
        }

        public APISetting GetConfiguration()
        {
            // Get the configuration from embedded dll.
            using (var stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("appsettings.json"))
            using (var reader = new System.IO.StreamReader(stream))
            {
                return System.Text.Json.JsonSerializer.Deserialize<APISetting>(reader.ReadToEnd());
            }
        }
    }

其中 APISetting class “匹配”您的 appsettings.json:

public class APISetting
{
    public string AuthEndpoint { get; set; }
    ...
    ...
}

和 appsettings.json “构建操作”设置为“嵌入式资源”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM