.net-core - 清除 .NET Core 中的 DI 缓存
问题描述
我正在将使用 Ninject 的现有应用程序移植到 .NET 5 (.NET Core) 及其依赖注入 (DI) 服务。由于我们代码中的设计相当平庸,我需要采用以下用于 Ninject 的行并将其移植到 .NET Core 的 DI 服务上的类似调用:
container.Get<Ninject.Activation.Caching.ICache>().Clear(Thread.CurrentThread);
这将清除 DI 服务的内部缓存,其中包含当前线程范围内的所有对象。所谓“清除”,是指为 GC 释放和释放对象,将来对 DI 服务的任何调用都将实例化新对象,而不是返回任何现有对象。
如何使用 .NET Core DI 完成相同的任务?
我知道这段代码需要改进:\ 计划和预算表明它很快就会发生,但不是现在,因为它需要对一些大规模复杂的报告进行大规模的重新设计,这些报告目前正在并行线程上进行数千个数据库查询。
解决方案
推荐阅读
- wordpress - Onesignal Wordpress Flutter 未在应用程序中打开
- javascript - 无法访问属性“color”,icon.style 未定义
- typescript - 在 dist 文件中,为什么一个正常的 - 显然 - 预期的分号会引发“SyntaxError: Unexpected token ;” 错误?
- laravel - Laravel Cashier 未完成支付处理
- javascript - React-player 如何使用自动播放处理播放暂停状态
- c++ - CMake 不链接目标文件
- ruby-on-rails - Ruby on Rails:在不刷新页面的情况下发布和显示图像
- java - 在应用程序重新启动时保留递增的整数
- python - 为什么我收到问题不遵循 DCP 规则错误?
- socket.io - socket.emit 未在 sveltekit 中执行内部函数