2011-11-15 5 views
1

Je n'arrive pas à trouver un exemple d'injection de contrôleurs directement à partir d'un projet séparé. Auparavant, dans Spring.net Je voudrais ajouter ce qui suit à la Global.asaxMVC 3 injecter des contrôleurs avec Ninject

ControllerBuilder.Current.SetControllerFactory(new SpringFactory); 

puis ajoutez simplement l'entrée au nom de l'objet xml < = Type "Shared" = "..." />

Est-ce que quelqu'un pourrait décrire les étapes que je dois suivre pour accomplir ceci avec la dernière version de Ninject et MVC3? ou un lien vers un exemple? En outre, je voulais faire quelque chose de similaire avec les Vues (les mettre dans un projet séparé), Ninject peut-il m'aider avec ça?

Toute aide appréciée.

Répondre

1

Avez-vous essayé d'utiliser le package Ninject.Mvc3? Il va tout mettre en place pour vous: http://nuget.org/List/Packages/Ninject.MVC3.

Installez-le en tapant: Install-Package Ninject.Mvc3 dans la console du gestionnaire de packages. Il va ajouter un fichier sous le dossier App_Start, là vous pouvez modifier ce que vous voulez injecter.

Pour la partie View Ninject peut vous aider si vous avez implémenté le IViewPageActivator que vous injectez. Mais pourquoi voulez-vous avoir votre point de vue dans un projet séparé? Les vues appartiennent à l'application Web et doivent se trouver dans le projet d'application Web.

+0

Merci. Donc, je n'ai pas vraiment besoin de faire quoi que ce soit une fois le paquet installé .. il trouve juste le contrôleur? J'ai deux sites Web qui ont une charge de vues qui sont identiques (et seront toujours) donc il est logique de les partager. – tjh7

+0

Si vous possédez quelque chose dont vos contrôleurs dépendent, vous devez indiquer à NInject que vous en dépendez. Et vous faites cela dans la classe créée dans le dossier App_Start. Aussi, commencez à accepter les réponses et votez pour les questions qui vous aident. Sinon, vous aurez moins de réponses. –

2
+0

Pourquoi le feriez-vous vous-même quand il est automatisé avec NuGet? –

+0

Si vous aviez lu la documentation à la fin vous verriez que les deux manières sont décrites et pas seulement la manière manuelle et aucune n'est favorisée. La manière manuelle est conservée pour une rétrocompatibilité. –

Questions connexes