相关疑难解决方法(0)

在域驱动设计中缓存代码位置

在遵循域驱动设计的应用程序中,您可以使用以下类型的概念

  1. 处理DataBase访问的存储库
  2. 应用服务,协调enties和值对象之间的交互等.

通常你会把缓存代码放到一个昂贵的数据库调用?

我已经看到代码库只是缓存在整个地方,很难监控内存使用情况,很难为其他开发人员提供指导.

请理解我知道您应该只在需要时缓存数据,我只是问一般问题.

dns caching domain-driven-design

6
推荐指数
1
解决办法
779
查看次数

创建一个随时间过期的Autofac Lifetimescope

我有一个bank/collection,用于在内存中缓存对象的实例,这样每个请求都不需要返回数据存储区.我希望Autofac提供该银行的一个实例,但是在x秒后将其过期,以便在下一个请求中创建一个新实例.我无法设置LifetimeScope来实现这一目标.我已经通过阅读几次.银行对象实际上不受工作单元的约束.理想情况下,它将位于所有工作单元"之上",在其内部和之间缓存对象.

我目前正在使用下面的方法,但它没有像我希望的那样工作.

有人可以指点我正确的方向吗?

....
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));
Run Code Online (Sandbox Code Playgroud)

....

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

首先十分感谢.

autofac

4
推荐指数
1
解决办法
1292
查看次数

标签 统计

autofac ×1

caching ×1

dns ×1

domain-driven-design ×1