2010-05-11 45 views
0

我已经继承了一些代码,其中MVC控制器类都获得了他们的构造函数由Castle ... DefaultProxyFactory.Create()调用沿线(调用堆栈退出到<external code>,这是没有帮助。 )模糊的MVC和温莎城堡的问题。对不起

所以,基本上,我将如何去了解Castle被告知如何调用我的控制器的构造函数?

我对Castle,Windsor和MicroKernel等很新,而不是ASP的MVC高手。

非常感谢任何指针 - 对不起,含糊不清,

马特。

+0

你的意思是ASP.NET MVC?检查你的ControllerFactory。如果您想了解Windsor中组件的创建方式以及如何选择构造函数的详细信息,请参阅以下链接:http://stw.castleproject.org/Windsor.How-components-are-created.ashx http://stw.castleproject。 org/Windsor.How-constructor-is-selected.ashx?HL =构造函数 – 2010-05-11 06:22:43

+0

你有没有特别的问题/例外,或者你只是想了解Windsor/MVC是如何工作的? – 2010-05-11 12:21:06

+0

我没有实际的例外,但我有一个相当大的解决方案来理解,它涉及到很多DI,IoC,Windsor,NHibernate等,并且在解决/更改代码之前理解体系结构,我认为,我应该集中在哪里现在。 – 2010-05-11 12:45:15

回答

1

This article详细解释了ASP.NET MVC控制器的生命周期,包括何时调用ControllerFactory以及如何挂接IoC容器。在这篇特定的文章中使用了StructureMap,但任何IoC容器都可以用于它的位置。

在你的ControllerFactory,温莎拾取并作为文章的Krzysztof评论解释实例化的实际控制人:

如果您在到DefaultProxyFactory.Create(...)引用您的堆栈跟踪意味着正在创建代理。温莎的默认代理工厂是DynamicProxy。你可以在Krzysztof's tutorial中了解它。