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

Dotnet Discussion :

[2.0 - C#]contourner référence circulaire dans archi n-Tiers


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut [2.0 - C#]contourner référence circulaire dans archi n-Tiers
    salut tt le monde,

    je rencontre un problème dont je ne trouve plus la solution.

    dans une archi NTiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [ EXC ][ INTERFACE ]
    [ EPT ][ METIERS ]
    [ ION ][ DAL      ]
    Ma librairie verticale exception est en fait une classe appelée par interface, métiers ou DAL selon les cas, qui gère mes exceptions.

    Le problème est que maintenant, j'aimerais depuis ma couche Exception, appelé une fonction de metiers qui va me loguer mes erreurs.
    Et c'est la que ca bloque.
    Quand dans ma librairie Exception je veux rajouter les références vers la couche métier, j'ai un message d'erreur comme quoi je n'ai pas le droit a cause des références circulaires.

    Une petite idée pour me sortir de ce mauvais pas??

    PS : je mets un peu de code au cas ou ca puisse aider :

    SiteDAL.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try
                {
                    .............    
                }
                catch (Exception e)
                {               
                    throw new MyException(e, e.Message,ErrorType.ErrorDB.ToString());
                }
    dans ma couche Exception MyException.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public MyException(Exception _pException, string psTechMessage, string psUserMessage)
            {
                _sTechMessage = psTechMessage;
                _sUserMessage = psUserMessage;
     
                /!\ Ca bloque
                LogBLL.log(.......);
     
                //Affichage userMessage
                ..............
            }
    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Par défaut
    Pourquoi ne gères-tu pas le log des erreurs dans ta bibliothèque de gestion des exceptions?

  3. #3
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Citation Envoyé par The eye Voir le message
    Pourquoi ne gères-tu pas le log des erreurs dans ta bibliothèque de gestion des exceptions?
    J'ai une couche DAL, pour l'accès aux données, je ne veux pas que ma couche Exception puisse faire de même, sinon je perds de la modularité...

    En fait j'ai trouvé une solution. Au lieu de créer MyException au niveau de la couche DAL, je créé une DataException, que je catch dans ma couche métier.
    Si je catch une DataException, je crée alors MyException qui va appeler les fonctions DAL pour le loggage en BDD et donc plus de référence circulaire.

    Merci

  4. #4
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Salut,

    pour eviter ce genre de desagrements, en general, les logs sont dans une couche Core, avec d'ailleurs les exceptions et la securite...

    parce que les logs, c'est pas metier

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/10/2012, 13h16
  2. [EXCEL] : référence circulaire à cause d'une macro
    Par repié dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/01/2006, 10h41
  3. [DEB] DBdesigner 4 et référence circulaire
    Par Ranbaz dans le forum DBDesigner
    Réponses: 1
    Dernier message: 13/07/2005, 17h32
  4. [liste] référence unique dans une liste
    Par jean-jacques varvenne dans le forum Général Python
    Réponses: 3
    Dernier message: 29/03/2005, 09h57
  5. problème de références _ptr dans une map STL
    Par Mr_Tyu dans le forum CORBA
    Réponses: 1
    Dernier message: 10/08/2004, 10h39

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