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

C# Discussion :

Comment utiliser Unity avec le fichier de config [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut Comment utiliser Unity avec le fichier de config
    Bonjour,

    je suis entrain de travailler sur un projet test avec unity 2.1, j'ai donc créer un projet Bibliothèque de classe qui contient ma BDD mes interfaces et mes classes et un projet winform où j'utilise Unity pour travailler avec cette Bibliotheque.

    voici le code de mes interfaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    namespace Objet
    {
        public interface IPersonneRepository
        {
     
            Personne ObtenirParId(int id);
     
            List<Personne> ObtenirTous();
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    namespace Objet
    {
        public interface IPersonneService
        {
            Personne ObtenirParId(int id);
     
            List<Personne> ObtenirParNom(string nom);
     
            List<Personne> ObtenirTous();
     
            List<string> ObtenirTousLesNoms();
        }
    }
    et j'ai donc 2 classes PersonneRepository et PersonneService qui implémentent ces interfaces.

    En initialisant le container unity en code aucun problème pour faire appel au méthode de mes interfaces:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    container = new UnityContainer().RegisterType<IPersonneRepository, PersonneRepository>().RegisterType<IPersonneService, PersonneService>();
    comboBox1.DataSource = container.Resolve<IPersonneService>().ObtenirTousLesNoms();
    Mais si je charge mon fichier de configuration j'ai une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    container = new UnityContainer().LoadConfiguration();
                comboBox1.DataSource = container.Resolve<IPersonneService>().ObtenirTousLesNoms();
    Erreur
    {"Resolution of the dependency failed, type = \"Objet.IPersonneService\", name = \"(none)\".\r\nException occurred while: while resolving.\r\nException is: InvalidOperationException - The current type, Objet.IPersonneService, is an interface and cannot be constructed. Are you missing a type mapping?\r\n-----------------------------------------------\r\nAt the time of the exception, the container was:\r\n\r\n Resolving Objet.IPersonneService,(none)\r\n"}
    Voici mon fichier de config:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <configuration>
      <configSections>
        <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>
      </configSections>
     
      <unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
        <assembly name="Objet" />
        <namespace name="Objet" />
        <!--<alias alias="IPersonneRepository" type="Objet.IPersonneRepository, Objet" />
        <alias alias="IPersonneService" type="Objet.IPersonneService, Objet" />
        <alias alias="PersonneRepository" type="Objet.PersonneRepository, Objet" />
        <alias alias="PersonneService" type="Objet.PersonneService, Objet" />-->
     
        <container>
     
          <register type="IPersonneRepository" name="Repository" mapTo="PersonneRepository"  />
          <register type="IPersonneService" name="Service" mapTo="PersonneService" >
          <constructor>
              <param name="rep" dependencyType="IPersonneRepository"/>
            </constructor>
          </register>
        </container>
     
      </unity>
    </configuration>
    Je pense soit avoir oublié une étape ou soit avoir mal initialisé mon container, j'ai essayé de modifier le fichier de config ou là façon d'appeler mon container mais j'ai toujours une erreur.

    Merci pour votre aide.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Par défaut
    Je te conseille ce livre http://www.manning.com/seemann/ ...

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    Je pense que pour le principe les différents tutos disponible sur le net suffisent, c'est juste pour la mise en œuvre avec le fichier de config que j'ai un problème mais merci quand même pour la réponse.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    Je pense que pour le principe les différents tutos disponible sur le net suffisent, c'est juste pour la mise en œuvre avec le fichier de config que j'ai un problème mais merci quand même pour la réponse.
    Permet-moi de ne pas être d'accord. Je trouve que dans le cas du IOC/DI les tutoriels existant donnent peu de perspective sur le sujet et souvent escamotent certaines options au profit d'autres façons de faire que les auteurs préfèrent.

    Comme la configuration par fichier de configuration est beaucoup moins populaire que la confuration à même le code, je trouve, personnellement, que le livre que j'ai suggéré offre plus de détails concernant cette façon de faire...

    Mais ce n'est qu'une opinion...

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Par défaut
    Oh, et pourquoi Unity plutot que Windsor Castle?

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    C'est pour un projet sur lequel je devrais travailler la semaine prochaine (pendant une semaine c'est tout), c'est Unity qui est utilisé dans ce projet et toute la config est dans le fichier de config.

    Et donc je voulais comprendre comment ça marche avant de me lancer dessus.

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

Discussions similaires

  1. Comment utiliser join avec sort des 2 fichiers input
    Par Zwiter dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 14/08/2013, 19h57
  2. Comment utiliser JAXB avec un fichier properties?
    Par sofien dans le forum Persistance des données
    Réponses: 0
    Dernier message: 24/02/2010, 12h28
  3. Comment utiliser AddItem avec un TComboBox ?
    Par richard038 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 01/08/2005, 17h58
  4. Réponses: 8
    Dernier message: 28/01/2005, 08h28
  5. Réponses: 12
    Dernier message: 02/02/2004, 13h41

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