我承认我已经发布了一个关于我正在观察的现象的问题,但是经过更多的研究后,我从一个稍微不同的角度来这里,并以不同的方式标记它:
我有一个页面——WorkflowDetail.aspx——由一个类文件——WorkFlowDetail.aspx.vb支持。该类从继承自Spring.Web.UI.Page的BaseClass1继承(BaseClass1没有关联的 ASPX,只有一些常见的属性和方法)。
我在WorkFlowDetail的New()方法中设置了一个断点。我发现当我在浏览器中打开页面时,构造函数会运行多次。我很想知道谁在运行它以及为什么运行它,但堆栈只显示“ [外部代码] ”。
如果我没有尝试让Spring将 DAO 属性注入页面,这只不过是一种无聊的好奇心,或者最多是一个小烦恼。发生的情况是Spring进行了注入(当调试器在New()中停止时,可以看到堆栈上的所有Spring方法),但是随后由“ [外部代码] ”创建了一个新的页面副本,这样当它开始访问它为null的 DAO 属性,因为这是与注入属性的页面不同的页面实例。
这一切都发生在IIS 7.5 Integrated和针对.NET 4.0的VS2010中内置的Web 应用程序中。在Spring的Northwind示例的页面中设置类似的断点,这是一个针对.NET 3.5的网站,当Spring实例化该页面时它会被命中,仅此而已。
有人能告诉我是什么导致了这些额外的实例化,或者我怎么能找到?