2010-05-11 5 views
0

J'ai hérité du code dans lequel les classes du contrôleur MVC obtiennent tous leurs constructeurs appelés par Castle .... DefaultProxyFactory.Create() quelque part le long de la ligne (la pile d'appels est supprimée au <external code>, ce qui n'aide pas. Donc, au fond, comment pourrais-je savoir où l'on apprend à Castle comment appeler les constructeurs de mes Contrôleurs? Je suis très nouveau à Castle, Windsor et MicroKernel, etc, et pas un maître de l'ASP MVC.Vague MVC et Castle Windsor question. Désolé

Un grand merci pour tous les pointeurs - désolé au sujet de l'imprécision,

Matt.

+0

Vous voulez dire ASP.NET MVC? Vérifiez votre ControllerFactory. Si vous souhaitez connaître les détails de la création des composants dans Windsor et de la sélection des constructeurs, consultez les liens suivants: http://stw.castleproject.org/Windsor.How-components-are-created.ashx http: //stw.castleproject. org/Windsor.How-constructor-is-selected.ashx? HL = constructeur –

+0

Avez-vous un problème/une exception en particulier, ou voulez-vous simplement comprendre comment fonctionne Windsor/MVC? –

+0

Je n'ai pas des exceptions réelles, mais j'ai une solution assez grande pour comprendre et il implique beaucoup de DI, IoC, Windsor, NHibernate, etc et comprendre l'architecture avant de résoudre/code altérant est, je pense, où je concentrerai à présent. –

Répondre

1

This article explique en détail le cycle de vie d'un automate ASP.NET MVC, y compris lorsque le ControllerFactory est appelé et comment raccorder un conteneur IoC. StructureMap est utilisé dans cet article particulier, mais n'importe quel conteneur IoC peut être utilisé à sa place.

Dans votre ControllerFactory, Windsor ramasse et instancie le contrôleur réel comme expliqué dans les articles Krzysztof commentait:

Si vous voyez une référence à DefaultProxyFactory.Create(...) dans votre stack trace signifie qu'un proxy est en cours de création. L'usine proxy par défaut de Windsor est DynamicProxy. Vous pouvez en apprendre plus à ce sujet dans Krzysztof's tutorial.

Questions connexes