1 回答
TA贡献1834条经验 获得超8个赞
Rajmond 的同事在这里。我弄清楚我们的问题。基本上,等待工作正常等等。我们的问题很简单,如果你这样做,IServiceCollection.BuildServiceProvider()你每次都会得到不同的范围(因此即使使用 Singleton 实例也会创建不同的对象)。试试这个的简单方法:
var serviceProvider1 = services.BuildServiceProvider();
var hashCode1 = serviceProvider1.GetService<IAccessInfoStore>().GetHashCode();
var hashCode2 = serviceProvider1.GetService<IAccessInfoStore>().GetHashCode();
var serviceProvider2 = services.BuildServiceProvider();
var hashCode3 = serviceProvider2.GetService<IAccessInfoStore>().GetHashCode();
var hashCode4 = serviceProvider2.GetService<IAccessInfoStore>().GetHashCode();
hashCode1andhashCode2相同,与hashCode3and相同hashCode4(因为单例),但hashCode1/hashCode2与hashCode3/hashCode4不同(因为不同的服务提供者)。
真正的修复可能是检查 IAccessInfoStore,它会在内部阻塞,直到作业第一次完成。
干杯!
- 1 回答
- 0 关注
- 235 浏览
添加回答
举报