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

ASP.NET Discussion :

[C#] Problème de StackOverflow sur une variable de classe


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 6
    Points
    6
    Par défaut [C#] Problème de StackOverflow sur une variable de classe
    Bonjour à tous,

    J'ai un petit problème avec l'exception Stack Overflow qui commence à me courir sur le système car je n'arrive toujours pas à comprendre ce qui la déclenche.

    J'ai une classe "User" qui a pour but de stocker des variables relatives à un compte client sur mon site. Cette classe comprend entre autre un "user_id" de type Guid. Voici les premières lignes de ma classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class User
    {
        protected Guid user_id
        {
            get {return user_id;}
            set {user_id = value;}
        }
    Et voici le constructeur de la classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        public User( Guid userId, String userLogin, String userPassword, String userPrenom, String userNom, String userEmail, int userLvl, Guid agenceId)
    	{
            this.user_id = userId;
            this.user_login     = userLogin;
            this.user_password  = userPassword;
            this.user_prenom    = userPrenom;
            this.user_nom       = userNom;
            this.user_lvl       = userLvl;
            this.agence_id      = agenceId;
    	}

    Jusque là, aucun problème !

    Bref, maintenant j'ai une page de login (login.aspx) qui permet de s'identifier. Pour ca j'ai utilisé l'outil intégré par microsoft "login control" et j'ai crée mon propre provider. J'ai donc overridé la fonction ValidateUser qui me permet de confirmer l'identification d'un utilisateur fraichement identifié. Je récupère donc les données dans la BDD et je les passe au constructeur de ma classe User comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                    User oCurrentUser = new User(_userId, _userLogin, _userPassword, _userPrenom, _userNom, _userEmail, _userLvl, _agenceId);
    en ayant bien sur récupéré les valeurs dans le reader précédement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Guid _userId = rdr.GetGuid(0);
    ...
    Lorqsue je test la page, j'obtiens une Stack Overflow Exception l'appel au premier "set" de variable de ma classe User. Que ca soit le userId ou le Login, ca ne change rien ! Je n'arrive vraiment pas à comprendre ce qui génère cette exception.

    Si vous avez une idée je serais ravi de l'entendre ca me débloquerais pas mal sur mon projet ^^

    Merci d'avance !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     protected Guid user_id
        {
            get {return user_id;}
            set {user_id = value;}
        }
    Tes méthodes get et set sont récursives et donnent forcemment lieu à un Stack Overflow (dans le get tu rappelles le get, idem dans le set). Il te manque une variable membre sur laquelle doit être mappée ta propriété :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        protected Guid _user_id;
     
        protected Guid user_id
        {
            get {return _user_id;}
            set {_user_id = value;}
        }
    Tu vois le soucis ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Pfffff

    Alala mais j'en reviens pas !

    Je viens effectivement de me rendre compte de la chose en re regardant un document sur l'utilisation des set et get...

    En effet j'avais pas pensé à ça, ça fait tellement longtemps que j'ai pas écrit une ligne de C# que...

    Bref merci beaucoup ! Ca résoud tout à fait mon problème héhé.

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

Discussions similaires

  1. [Dojo] push ca marche pas sur une variable de classe ?
    Par Zineb1987_UNI dans le forum Bibliothèques & Frameworks
    Réponses: 11
    Dernier message: 14/12/2009, 10h12
  2. Problème de sintaxe sur une variable
    Par jmde dans le forum VBA Access
    Réponses: 6
    Dernier message: 12/06/2008, 13h59
  3. [Tableaux] Problème de test sur une variable
    Par Laurent64 dans le forum Langage
    Réponses: 7
    Dernier message: 20/05/2007, 14h04
  4. Problème avec un pointeur global sur une variable manager
    Par sepullayer dans le forum C++/CLI
    Réponses: 12
    Dernier message: 26/03/2007, 13h00

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