2011-01-13 1 views
4

Je suis assez nouveau dans le concept DI/IoC et j'aimerais utiliser Autofac dans une application ASP.NET Webform à 3 couches.Utilisation d'Autofac dans une architecture multicouche

  • Couche d'interface utilisateur: site Web ASP.NET.
  • BLL: Couche logique métier qui appelle les référentiels sur DAL.
  • DAL: fichier .EDMX (Entity Model) et ObjectContext avec classes Repository qui résument les opérations CRUD pour chaque entité.
  • Entités: Les entités POCO. Persistance ignorante. Généré par le générateur d'entité POCO ADO.Net de Microsoft.

J'ai posé une question plus générale here. Fondamentalement, je voudrais créer un obejctcontext par HttpContext dans mon DAL. Mais je ne veux pas ajouter une référence à DAL dans l'interface utilisateur ou accéder directement à HttpContext dans DAL. Je suppose que c'est là que les outils de l'IoC viennent jouer. La réponse à ma question précédente est un très bon exemple d'utilisation du château de Windsor. Je voudrais utiliser Autofac comme outil IoC et je ne sais pas comment y parvenir. (Comment accéder à DAL dans application_start pour enregistrer le composant alors que je ne veux pas le référencer dans mon interface utilisateur, quelles sont les références appropriées pour pouvoir utiliser le composant DAL dans BLL avec Autofac, Devrais-je enregistrer BLL comme composant avec Autofac?

Désolé de ne pas fournir une question explicite et de demander une sorte d'exemple de travail, mais je ne connais pas très bien l'ensemble du concept de l'IoC et je ne pense pas pouvoir l'utiliser dans mon temps actuel ... projet limité.

Répondre

6

Autofac Les modules sont la technique que vous cherchez: http://code.google.com/p/autofac/wiki/StructuringWithModules

Un groupe de module configuration liés, par exemple vos types DAL et peuvent être chargés dans une application via Web.config: http://code.google.com/p/autofac/wiki/XmlConfiguration#Modules

Cela évite d'avoir besoin de références dures entre votre application Web et DAL.

Si vous souhaitez enregistrer des composants DAL par requête, utilisez le modificateur de partage InstancePerLifetimeScope(). Cela fonctionnera de la même manière que InstancePerHttpRequest() sauf si vous personnalisez la hiérarchie à vie dans votre application (peu probable.)

Bonne chance avec!

Nick

+0

Merci Nick. Je ne savais pas que je peux utiliser Web.config avec Autofac. – Kamyar

+0

hi @ nicholas-blumhardt, savez-vous si un exemple de projet avec Entity Data Model - autofac - mvc4 est disponible en téléchargement? Merci d'avance!. –

Questions connexes