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# 2.0] Acceder aux propriétés de ma classe Global


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut [C# 2.0] Acceder aux propriétés de ma classe Global
    Bonjour,

    A chaque fois je bute sur le meme probleme. Je veux acceder a mes variables partout dans toutes mes classes, j'ai mis static et public , je pensais que ca suffirais mais peine perdue...
    Dans mes autres pages, je n'y accede pas.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class Global : System.Web.HttpApplication
    {
        /// <summary>
        /// Variable nécessaire au concepteur.
        /// </summary>
       private System.ComponentModel.IContainer components = null;
       public static ListDictionary TabQuestion;
       public static ListDictionary TabReponse;
       public static Questionnaire QuestionnaireGeneral;
    [....]

    PS edit : Je les instancie dans Application start.

  2. #2
    Membre expérimenté Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Par défaut
    On ne peux pas acceder a une ppte static a partir d'une variable instanciee.
    On ne peux pas acceder a une ppte non-static a partir de la definition d'une classe, ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class toto {
    static int i = 0;
    public int j = 0;
    }
    public class B {
    ...
    public void Test() {
        toto A = new toto();
        int i = toto.i;
        int j = A.j;
    }
    }
    ...
    ++
    Fred.

  3. #3
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Le mieux pour moi serait alors de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application["TabQuestion"] = new ListDictionary();
    et d'y acceder via mon objet application?

  4. #4
    Membre expérimenté Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Par défaut
    Pas forcement, ca depends de ce que tu veux faire.
    Tu dispose de 3 mecanismes (principaux) pour conserver une valeur entre 2 posts.
    1- Les variables d'applications comme tu l'as mentionne, elles sont valables pour TOUS les utilisateurs connectes.
    2- Les variables de session, valables pour 1 session comme leur nom l'indique.
    3- Le viewstate valable pour un ensemble d'aller-retours d'une meme page vers le serveur.
    L'utilisation de l'une ou l'autre depends des besoins, 1 pour un parametre global (chemin physique de l'application par ex), 2 pour qq chose qui dure toute la session (panier ou authentification d'un utilisateur par ex), 3 pour un objet qui dure autant que ta page (valeur d'un champ tant qu'un formulaire n'est pas poste de facon 'definitive', suite a une erreur de validateurs par ex).
    ++
    Fred

  5. #5
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Ce qui m'interesse c'est de garder un questionnaire en mémoire car tout les intranautes vont y repondre et il ne sera modifié que quelques fois seulement.
    En tout cas merci pour tes conseils ... J'ai fais comme cela :

    fichier Globas.asax.cs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
           private static Questionnaire _QuestionnaireGeneral = new Questionnaire();
     
     
     
            public static Questionnaire QuestionnaireGeneral
            {
                get
                {
                    return _QuestionnaireGeneral;
                }
            }
    Dans mon fichier pagetruc.aspx :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (ArrayList)Global.QuestionnaireGeneral.LanceQuestionnaire(Monclient);
    voilà, j'espere que cela va répondre à tous mes soucis, en tout cas merci et a+...

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

Discussions similaires

  1. Acceder aux propriétés d'un control d'une autre form
    Par khaled_mechkak dans le forum C#
    Réponses: 8
    Dernier message: 09/09/2020, 12h51
  2. Réponses: 2
    Dernier message: 26/08/2011, 11h26
  3. Réponses: 1
    Dernier message: 13/05/2008, 09h53
  4. Réponses: 1
    Dernier message: 18/03/2008, 15h29
  5. [css] acceder aux propriétés d'un autre objet
    Par bakonu dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 21/10/2005, 12h28

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