首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果StructureMap注册表有重复扫描会发生什么?

如果StructureMap注册表有重复扫描会发生什么?
EN

Stack Overflow用户
提问于 2017-10-31 21:57:56
回答 1查看 119关注 0票数 0

我试图在我的MVC web应用程序中挖掘内存漏洞,我注意到我的DefaultRegistry for StructureMap有一个复制的scan...scan.TheCallingAssembly():

代码语言:javascript
运行
复制
    public DefaultRegistry()
    {
        Scan(
            scan =>
            {                    
                scan.TheCallingAssembly();
                scan.WithDefaultConventions();                    
                scan.TheCallingAssembly();
           });
    }

这会引起问题吗?会不会导致记忆泄露?(请成为问题所在)。今晚我将公布校正结果,所以我最终会发现这是否解决了问题;但是可以肯定地知道,重复扫描方法是否有任何副作用。

此外,在扫描方法出现的顺序上有什么意义吗?scan.WithDefaultConventions()是否需要排在最后,还是第一位,或者是否重要?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-01 15:17:48

下面是StructureMap:https://github.com/structuremap/structuremap/blob/master/src/StructureMap/Graph/AssemblyScanner.cs#L29-L30中的相关代码。

因此,StructureMap不会在对Scan()的任何调用中对同一个程序集进行双重扫描。如果在多个Scan()操作中执行相同的逻辑操作,则可能会创建复制,但至少在高于这些特定常规注册的情况下,不会两次添加相同的类型。

不,不管你按照什么顺序声明程序集和注册约定。注册约定将按照定义它们的顺序执行,因此在一些情况下,您将看到依赖排序反映了这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47045121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档