asp.net-core - 在 Razor 模型中使用作用域服务(依赖注入)
问题描述
我想在 Razor PageModel 中使用范围服务。注册是这样的:
services.AddScoped<IOperationScoped, Operation>();
但微软表示不要在作用域服务上使用构造函数注入:
在中间件中使用范围服务时,将服务注入 Invoke 或 InvokeAsync 方法。不要通过构造函数注入进行注入,因为它会强制服务表现得像一个单例。
但是我必须在构造函数之外的 Razor 中注入范围服务的哪个选项?
解决方案
在中间件中使用范围服务时,...
注意: 强调我的
该引用专门指中间件,不适用于PageModel
可以并建议使用构造函数注入的 .
public class MyPage: PageModel {
//ctr
public MyPage(IOperationScoped operation) {
//...
}
//...
}
PageModel 类允许将页面的逻辑与其表示分离。它为发送到页面的请求和用于呈现页面的数据定义页面处理程序。这种分离允许:
- 通过依赖注入管理页面依赖。
- 单元测试
推荐阅读
- javascript - i18next - 使用上下文时动态添加性别
- python - 实现递归回溯器以生成迷宫
- javascript - 多个加载指示器显示在彼此上方
- sql-server - 工作组上运行的高可用性集群系统中的 Sql Server 复制设置
- ios - Cocoapod 系统设置问题 - 'pod install' 出错
- c++ - CMake 无法在 Clion 中链接 Boost 正则表达式库
- css - Select2 - 我们可以设置下拉菜单以匹配页面其余部分的样式吗?
- arrays - 如何控制在 Google 表格中触发多少个单元格
- ios - 未调用委托函数
- javascript - 使用javascript单击突出显示的元素