- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我添加了一个这样的单例。
在 Startup.cs 中,我添加了以下内容:
services.AddSingleton<MySingleton>();
我想像这样构建我的单例(当然这是不可能的):
public class MySingleton
{
public MySingleton()
{
await InitAsync();
}
private async Task InitAsync()
{
await Stuff();
}
}
如何在不造成死锁的情况下解决此问题?
最佳答案
据我所知,ASP.NET Core 中的配置不是异步的,因此无法使用异步工厂或类似方式添加服务。
正因为如此,考虑到如果只在应用程序启动时进行一次阻塞并不是什么大问题,我认为您应该在创建服务时进行阻塞。而且由于 ASP.NET Core 没有同步上下文,这也不会导致死锁。
关于c# - AddSingleton 与异步调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42729956/
我添加了一个这样的单例。 在 Startup.cs 中,我添加了以下内容: services.AddSingleton(); 我想像这样构建我的单例(当然这是不可能的): public class M
tl;博士 services.AddSingleton(); // SomeService not instantiated nor initialized? 在经典 SignalR Chat 应用程
当为使用 AddScoped 或 AddSingleton 添加的服务使用 DI 时,该服务是否需要实现 IDisposable(即使它没有使用任何非托管资源(如文件)? 从 Microsoft Do
我想模拟 IServiceCollection 以使用 Nsubstite 模拟库和 检查是否使用特定接口(interface)和具体类型调用了 AddSingleton xUnit. 这是我的单元测
为什么我应该为我的存储库或服务使用 AddScoped()?为什么不是 AddSingleton()?我知道它们之间的区别,但不明白为什么我不应该使用单例实例来避免为每个请求创建新对象。你能解释一下吗
为什么我应该为我的存储库或服务使用 AddScoped()?为什么不是 AddSingleton()?我知道它们之间的区别,但不明白为什么我不应该使用单例实例来避免为每个请求创建新对象。你能解释一下吗
考虑以下简单的 appsettings.json: { "maintenanceMode": true } 它加载在我的 Startup.cs/Configure(...) 方法中 public
我一直在通过程序类将我的依赖项注册到我的 IOC 容器中,但它变得困惑了。我决定编写一个 DI 提供程序,在其中提供并注册依赖项。 在我开始解释代码之前,这是 VS 给出的完整编译错误。 'Servi
我注意到在一些 .NET Core 示例中有对 TryAddSingleton 的调用,在一些 AddSingleton 中注册服务时。 如果服务类型尚未注册,反编译器显示 TryAdd(由 TryA
我想实现 dependency injection ASP.NET Core 中的 (DI)。因此,将此代码添加到 ConfigureServices 方法后,两种方式都有效。 ASP.NET Cor
在 asp.net 核心应用程序中,我有一个依赖注入(inject)缓存服务,它本质上是内置 MemoryCache 的包装器。 这是被缓存的示例类,它包含 Web 应用程序始终使用的一些枚举的列表:
众所周知,在 ASP.NET Core 2 中有两种获取选项类的方法: 使用 services.Configure<>()像这样: services.AddOption(); services.Con
我正在学习如何将 MongoDB 与 C# ASP.NET 一起使用,并且我一直在遵循 Microsoft 关于使用 MongoDB 的指南 Mongo Doc Guide .我已经进入添加配置模型部
我正在学习如何将 MongoDB 与 C# ASP.NET 一起使用,并且我一直在遵循 Microsoft 关于使用 MongoDB 的指南 Mongo Doc Guide .我已经进入添加配置模型部
看完this帖子我可以理解 AddTransient、AddScoped 和 AddSingleton 之间的区别,但是,我看不到它们每个的实际用法。 我的理解是 添加 transient 每次客户端
我只需添加以下内容即可访问 .NET Core 2 Web API Controller 中的 appsettings.json: public class MyController : Contro
在 ASP.NET Core 2.1 中注册自定义托管服务的正确方法是什么?例如,我有一个派生自 BackgroundService 的自定义托管服务名为 MyHostedService。我该如何注册
我正在使用 StackExchange.Redis 添加到 .NET Core 的 Redis 连接,它目前看起来像这样: public static IServiceCollection AddRe
我是一名优秀的程序员,十分优秀!