首页 > 解决方案 > 清除 .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 完成相同的任务?

我知道这段代码需要改进:\ 计划和预算表明它很快就会发生,但不是现在,因为它需要对一些大规模复杂的报告进行大规模的重新设计,这些报告目前正在并行线程上进行数千个数据库查询。

标签: .net-coredependency-injection.net-5

解决方案


推荐阅读