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 :

Environnement d'exécution en ASP.NET C#


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 7
    Par défaut Environnement d'exécution en ASP.NET C#
    En ASP.NET, dans un objet de type System.Web.UI.Page, on a, par exemple, l'information de la page en cours d'exécution par 'Request.Url'.

    Mais, dans un objet quelconque (pas forcément de type System.Web.UI.Page), est-il possible et comment accéder aux élèments en cours d'exécution :
    - le nom de la fonction dans laquelle on se trouve
    - l'objet System.Web.UI.Page en cours d'exécution (a priori il est unique pour la session)

    J'ai beau cherché sur les forums et les cours, je ne vois pas. J'ai lu quelque chose sur un nouvel objet, propre au VisualBasic, qui s'appellerai 'My' et serais un début de réponse. Mais en C#, je ne trouve rien.

    Merci pour votre aide

  2. #2
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Par défaut
    Il est normale de ne pas avoir accès à la request dans tes objets. Un objet étant une classe C#, il peut servir pour un site comme pour une appli windows ou console.

    Une solution simple consiste à faire passer la request dans les paramètres.
    Ce n'est pas lourd, car c'est un passage par référence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void MaFonction(HttpRequest request)
    {
      string url = request.Url;
    }

    et dans ta page aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonObjet obj = new MonObjet(Request);

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 7
    Par défaut
    Oui, c'est ce que je fais pour le moment. Mais je me dis que le serveur connait bien l'ensemble des objets en cours d'exécution et que je devrais pouvoir interroger ma page courante sans devoir la passer en paramètre.

  4. #4
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Par défaut
    Tu n'auras pas accès aux données que tu veux. Une autre technique consiste à utiliser le Context. Le context te permettra de simuler la session sur chaque aller retour au serveur. Le context est accessible par tous tes objets.

    Au démarrage du Global.asax, tu peux placer des éléments dans ton context, les libérer à la sortie.

    pour placer un élément dans ton context :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CallContext.SetData("monObj", monObjet);
    et le récupérer dans une autre classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (monObjet)CallContext.GetData("monObjet");
    Le fonctionnement ressemble à celui de la session. Tu devras pensé aussi à libérer le context une fois l'utilisation terminer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CallContext.FreeNamedDataSlot("monObjet");

    Peut être qu'en placant ton request dans ton context, tu pourra t'en sortir.

Discussions similaires

  1. [ASP.NET] Exécuter fonction Javascript
    Par mod6991 dans le forum ASP.NET
    Réponses: 11
    Dernier message: 20/12/2007, 19h02
  2. Réponses: 5
    Dernier message: 06/07/2007, 09h30
  3. Site ASP.NET et Exécution de fichier (.bat)
    Par dahu17 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 24/04/2007, 15h56
  4. [Asp.Net] exécuter fonction javascript
    Par ager1912 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 20/03/2007, 18h22
  5. Réponses: 2
    Dernier message: 13/12/2006, 13h48

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