gpt4 book ai didi

c# - 等待范围属性的初始化

转载 作者:行者123 更新时间:2023-12-04 13:30:54 25 4
gpt4 key购买 nike

在 .net 核心应用程序中,我有一个 ISessionService(它只包含各种可重用的属性,例如基于当前 URL 的当前“公司”。
它在启动时定义如下:

services.AddScoped<ISessionService, SessionService>();
SessionService 有一个属性是 .Company。但是在 .Company 中调用了数据库,因为它是一个属性,不能等待。所以它目前看起来像
public ICompany Company => dbContext.GetCompany(host).Result
.Result 导致应用程序在重负载下挂起。我可以把它放在 SessionService 的构造函数中,但这只是将 .Result 从属性移动到构造函数并导致同样的问题。
有没有办法,通过 SessionService 的初始化,以异步方式初始化,而不必做任何像 .Result 这样的同步调用?

最佳答案

不要引入任何异步代码的同步阻塞。您将损害应用程序的性能和可扩展性。
你想要的应该通过中间件和功能的组合来完成。
您的中间件应该将该信息添加到 collection of features .
我可以看到 how they are used in the codebase .

关于c# - 等待范围属性的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65059564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com