键入的配置类在 Blazor 自动渲染模式页面中不起作用(并且需要关于自动渲染模式的良好学习资源的提示)

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

我正在学习 Blazor,目前正在使用自动渲染模式(又名交互式自动)开发个人项目。希望你们中的一些专家用户可以帮助我解决一些菜鸟问题。

关于什么页面\组件在服务器端和在客户端有什么经验法则吗?我在弄清楚这一点时遇到问题。此外,网上有很多关于其他渲染模式的信息,但除了关于其工作原理的一般解释外,没有关于新的自动渲染模式的实际示例。我在 Github 上没有找到任何东西。有谁知道 Github 存储库、书籍或任何关于自动渲染模式的有效内容?

在使用配置设置时,我更喜欢使用类型化类,而不是这样读取 appsettings.json 值:

Config["NameOfVariable"]

所以,我所做的就是创建一个 AppSettings 类,在加载时绑定它并将其注册到容器中。我怀疑是否应该将类和相关接口注册为单例或作用域,但现在我有一个更重要的问题。这种方法在应用程序的后端完美运行,每当我注入接口时,所有设置都在那里。但是,当我在前端页面(服务器端)注入接口时,所有属性均为空。这就是我在加载时绑定类的方式:

var builder = WebApplication.CreateBuilder(args);
var appSettings = new AppSettings();
var configuration = builder.Configuration;
configuration.Bind(appSettings);
builder.Services.Configure<AppSettings>(configuration);
builder.Services.AddSingleton<IAppSettings, AppSettings>();
var validationResult = appSettings.Validate();

if (validationResult.Failed)
   throw new ValidationException(validationResult.FailureMessage);

etc...

你知道这种方法有什么问题吗?

configuration blazor blazor-server-side blazor-webassembly
1个回答
0
投票

键入配置。

LocalConfiguration localConfiguration = builder.Configuration.Get<LocalConfiguration>() 
    ?? throw new Exception(message: "Unable to load configuration.");
builder.Services.AddSingleton(_ => localConfiguration);

更容易。

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