我的印象是依赖注入对不变性并不友好。我使用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)
使其同步将使我的应用程序无响应。