我在我的应用程序中使用MVCTurbine,它会在我的asp.net-mvc 2.0网站中自动注入我的控制器。我的母版页,查看页面,css,web.configs和javascript文件都在我的mvc项目中,其余的(包括global.asax)都在单独的库中。
当我在Controller的构造函数中放置一个断点时,我注意到每个请求的所有构造函数都被命中4次,而实际操作的控制器会被第5次命中。
我试图通过以下方式减少问题表面:
断点没有有意义的堆栈跟踪。
将简化代码发布到http://gist.github.com/514442
可以在http://github.com/boriscallens/Beek
我有点想法,欢迎任何有关如何继续调试的提示或想法。
答案 0 :(得分:1)
我以前从未注意到这一点:/无论如何,经过一些挖掘后,我发现了4次调用构造函数的地方。它应该只调用它们4次,并缓存结果(它正在寻找过滤器),但是MvcTurbine似乎正在丢失带缓存的实例。
如果你复制&将此类粘贴到您的项目中,并将其注册到您应该按预期工作的IServiceRegistration
类中。
locator.Register<IFilterFinder, FilterFinder>();
(我将该课程从FilterFinder
重命名为DefaultFilterFinder
)
<强>更新强>
我弄清楚为什么它不起作用。这是因为当我从下载中下载2.1版本时,缓存结果的代码还没有。如果您从http://github.com/lozanotek/mvcturbine下载最新的源代码,它可以运行(您必须编译代码,不使用deploy文件夹中的二进制文件)。