IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Framework .NET Discussion :

Unity, Injection de dépendance et HierarchicalLifeTimeManager


Sujet :

Framework .NET

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 95
    Points : 131
    Points
    131
    Par défaut Unity, Injection de dépendance et HierarchicalLifeTimeManager
    Bonjour,

    Je travail avec Unity pour implémenter mes interfaces dans mon projet.

    J'ai créer mon propre IUnityContainer (qui ne fait rien de plus qu'encapsuler un UnityContainer et enregistrer mes implémentations).

    J'enregistre une instance d'un DbContext avec un HierarchicalLifeTimeManager.

    Lorsque je fais un CreateChildContainer() sur mon container et que je lui demande de résoudre mon DbContext, aucun soucis, il me fournis bien une instance de DbContext différente que le container racine.

    J'injecte par le constructeur mon DbContext à mes implémentations. Par contre la, le container enfant injecte toujours la même instance de DbContext, quelque soit la hiérarchie de mon conteneur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            private void RegisterAdhocImpl(string nomBase)
            {
                this.RegisterType<AdhocContext>(new HierarchicalLifetimeManager(), new InjectionConstructor(nomBase));
                this.RegisterInstance<ContextUtilisateur>("ContextUtilisateur", new ContextUtilisateur());
                RegisterAdhocImpl();
            }
     
            private void RegisterAdhocImpl()
            {
                this.RegisterType<IAdresseRepository, AdresseRepository>(new PerResolveLifetimeManager(), new InjectionConstructor(this.Resolve<AdhocContext>(), this.Resolve<ContextUtilisateur>("ContextUtilisateur")));
            }
    Comment faire pour que, lorsque les container d'une hiérarchie différente me resolve une interface, le DbContext injecté par le cosntructeur soit une nouvelle isntance ?

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 95
    Points : 131
    Points
    131
    Par défaut
    Résolu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.RegisterType<IAdresseRepository, AdresseRepository>(new PerResolveLifetimeManager(), new InjectionConstructor(new ResolvedParameter<AdhocContext>(), this.Resolve<ContextUtilisateur>("ContextUtilisateur")));

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Injection de dépendance avec Unity et Client WCF
    Par trihanhcie dans le forum C#
    Réponses: 3
    Dernier message: 22/05/2012, 10h42
  2. Réponses: 14
    Dernier message: 09/09/2011, 19h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo