小编Oli*_*r D的帖子

让 DI、不变性和异步共存

我的印象是依赖注入对不变性并不友好。我使用Microsoft 依赖注入,但我对另一个依赖注入持开放态度,我希望尽可能多地读取字段/属性,因此有一个构造阶段,然后是 init 阶段,这是最好的解决方案。当我需要创建一个通过互联网获取数据的类时,我的问题出现了,我想要这样的东西:

var services = new ServiceCollection();
services.AddSingleton<IMyWebService, MyWebService>();
services.AddSingleton<IMyOtherService, MyOtherService>(async sp =>
   {
       var webService = sp.GetService<IMyWebService>();
       return new MyOtherService(await webService.GetDataAsync());
   });
Run Code Online (Sandbox Code Playgroud)

使其同步将使我的应用程序无响应。

c# dependency-injection immutability async-await

1
推荐指数
1
解决办法
53
查看次数