- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个银行/集合,它在内存中缓存对象的实例,以便每个请求不需要返回到数据存储。我希望 Autofac 提供该银行的一个实例,但在 x 秒后使其过期,以便在下一个请求时创建一个新实例。我很难理解如何设置 LifetimeScope 来实现这一目标。我已通读this一些时间。 Bank 对象并不真正受制于工作单元。理想情况下,它将驻留在所有工作单元的“之上”,在它们内部和之间缓存对象。
我目前正在使用下面的方法,但它并没有像我希望的那样工作。
有人可以给我指出正确的方向吗?
....
builder.Register(c =>
{
return new ORMapBank(c.Resolve<IORMapRoot>());
}).InstancePerMatchingLifetimeScope(ExpireTimeTag.Tag());
IContainer container = builder.Build();
var TimedCache= RootScope.BeginLifetimeScope(ExpireTimeTag.Tag());
DependencyResolver.SetResolver(new AutofacDependencyResolver(TimedCache));
...
public static class ExpireTimeTag
{
static DateTime d = DateTime.Now;
static Object tag = new Object();
public static object Tag()
{
if (d.AddSeconds(10) < DateTime.Now)
{
CreateTag();
return tag;
}
private static void CreateTag()
{
tag = new Object();
}
}
提前非常感谢。
最佳答案
通常使用缓存装饰器来实现这种行为。假设您的 IORMapRoot
负责获取有问题的数据(但如果 ORMapBank
则工作原理相同),您执行以下操作:
CachingORMapRoot
来实现 IORMapRoot
TimeSpan
和原始 IORMapRoot
实现的实例。IORMapRoot
这是实现此类缓存的一种非常干净的方式。它还可以轻松地 switch between cached and non-cached implementations .
关于autofac - 创建将随时间过期的 Autofac Lifetimescope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6567940/
我有一个银行/集合,它在内存中缓存对象的实例,以便每个请求不需要返回到数据存储。我希望 Autofac 提供该银行的一个实例,但在 x 秒后使其过期,以便在下一个请求时创建一个新实例。我很难理解如何设
我正在修改现有代码库以更好地利用 autofac 容器。我遇到的情况是,在经典的 ServiceLocator 反模式中,很多东西用于直接从容器中解析它们的组件。我正在使用 LifetimeScope
我知道您可以向 LifetimeScope 添加注册 当它是这样创建的: using(var scope = container.BeginLifetimeScope(builder =>
我正在构建一个 Multi-Tenancy MVC 4 应用程序并使用 Autofac 作为容器。 我一直在看 Autofac MultiTenant 库,但是除非我错过了一些我认为它并不真正适合我需
我无法从文档中确定这一点。 给定一个注册: builder.RegisterType().As().InstancePerLifetimeScope(); 以下注册将承担什么LifetimeScope
有什么方法可以解决容器中的依赖关系(实际上是在嵌套的 LifetimeScope 中注册的,而不是在容器中注册的)? 实际实现说明: 我有 ApplicationContext 类(在其构造函数中注入
有什么方法可以解决容器中的依赖关系(实际上是在嵌套的 LifetimeScope 中注册的,而不是在容器中注册的)? 实际实现说明: 我有 ApplicationContext 类(在其构造函数中注入
令我感到非常惊讶的是,这个问题并未在每个 IoC/MVVM 教程中涵盖,所以希望我遗漏了一些明显的东西。 简而言之,我的问题是:如何将 Autofac LifeTimeScope 与 ViewMode
我在使用 Owin.TestServer 测试我的应用程序时遇到了问题。我找不到任何有用的东西,我希望这是社区可以提供帮助的简单修复:) 最近,我开始为使用 OWIN 和 AutoFac 进行 DI
我阅读了这些(+、+、+ 和 +)页面,但我不知道该怎么办。 我有这个简单的接口(interface)和具体的类型: public interface IIdentifierGenerator {
我正在开发一个应用程序 Asp.net 核心 使用 Autofac 作为默认 DI,在我的集成测试中,我需要一些服务,在安装之前 我通过创建 IServiceScopeFactory 注入(injec
我是一名优秀的程序员,十分优秀!