小编Dan*_*elg的帖子

动态组件太多

我试图将Razor视图引擎用作由数据库支持的通用模板引擎.
http://razorengine.codeplex.com/问题是,对于每个模板编译,都会创建并加载新的动态程序集.由于无法从当前appdomain卸载程序集,并且无法为模板系统使用单独的appdomain(使用匿名类型),因此这些程序集将不断累积,直到appdomain被销毁.模板本身将定期更改,因此将导致更多的重新编译.

问题是这些动态集合(可能有数千个)会损害appdomain性能吗?或者更方便的是有更好的方法吗?

c# razor

7
推荐指数
1
解决办法
569
查看次数

Autofac 解析具有混合作用域的组件

我在 asp.net 中使用 Autofac 2.5 并且我遇到了一个问题,即生命周期范围组件被解析为单实例组件的依赖项,从而破坏了我的线程安全。这是注册问题,但我认为 Autofac 认为这是违规行为,会引发异常。

    private class A{}

    private class B
    {
        public B(A a){}
    }

    [Test]
    [ExpectedException()]
    public void SingleInstanceCannotResolveLifetimeDependency()
    {
        var builder = new ContainerBuilder();
        builder.RegisterType<A>()
            .InstancePerLifetimeScope();
        builder.RegisterType<B>()
            .SingleInstance();

        using (var container = builder.Build())
        {
            using (var lifetime = container.BeginLifetimeScope())
            {
                //should throw an exception
                //because B is scoped singleton but A is only scoped for the lifetime
                var b = lifetime.Resolve<B>();
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果发生这种情况,有没有办法让 Autofac 抛出依赖项解析异常?

更新 即使这是 Autofac 的正确行为 - SingleInstance 只是 …

.net dependency-injection autofac

5
推荐指数
1
解决办法
2095
查看次数

选择 * 比选择列更快

WITH Categories (child_oid, Level) AS ( 
   SELECT h.child_oid, 
          0 AS Level 
     FROM Memx_productcatalog.dbo.ME_CatalogHierarchy AS h 
     JOIN dbo.[ME_CatalogProducts] c on h.oid = c.oid 
    WHERE c.CategoryName = 'Root' 
   UNION ALL 
   SELECT h.child_oid, 
          Level + 1 
     FROM dbo.ME_CatalogHierarchy AS h 
     JOIN Categories AS p ON p.child_oid = h.oid ) --End CTE Recursive
SELECT p.oid --problem here
  FROM dbo.ME_CatalogProducts as p
 WHERE p.oid IN (SELECT child_oid 
                   FROM Categories)
Run Code Online (Sandbox Code Playgroud)

我正在编写一个递归 CTE SQL 语句来从树中提取项目。查询工作正常。当我选择特定列时,查询将在大约 300 毫秒内执行。但是,当我使用select *or时p.*,查询执行时间不到 100 毫秒。这与我的预期完全相反。我检查了索引、统计信息,两个查询似乎生成了相同的执行计划。我被这个难住了。

更新

我一整天都在运行这个查询,结果一致。我尝试使用选项(重新编译)来禁用缓存。我刚刚在 sql …

sql t-sql

3
推荐指数
1
解决办法
2958
查看次数

标签 统计

.net ×1

autofac ×1

c# ×1

dependency-injection ×1

razor ×1

sql ×1

t-sql ×1