我正在学习 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...
你知道这种方法有什么问题吗?
键入配置。
LocalConfiguration localConfiguration = builder.Configuration.Get<LocalConfiguration>()
?? throw new Exception(message: "Unable to load configuration.");
builder.Services.AddSingleton(_ => localConfiguration);
更容易。