【发布时间】:2020-02-10 06:49:36
【问题描述】:
假设这个设置:
Page1:
- Component A
- Component B
Page2:
- Component C
- Component D
Service: MyService
我希望组件 A 和 B 获得相同的 MyService 实例。
组件 C 和 D 应该获得一个新的(并且相同的)MyService 实例。
当我将 MyService 注册为 transient 时,每个组件都会获得一个新实例。
当我注册为singleton/scoped 时,所有组件共享同一个实例。
组件是库的一部分,因此我正在寻找在消费端不需要或只需很少努力的解决方案。
怎么做?
【问题讨论】:
-
创建并注入单例工厂服务。获取工厂并询问所需的实例。
-
单一工厂可能会工作,但我想在用户离开第 1 页后处理该服务,所以我必须在工厂内做家务,听起来很麻烦
-
可以在page1的dispose上调用service的dispose。
标签: asp.net-core dependency-injection blazor blazor-server-side