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 :

[2.0][C#] setter dans WebServices


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 10
    Points
    10
    Par défaut [2.0][C#] setter dans WebServices
    Je veux faire un setter et un getter dans un WebService. Le getter marche mais pas le setter sauf en mettant l'attribut à setté en static .

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    using System;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
     
    [WebService(Namespace = "http://localhost/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class Etat : System.Web.Services.WebService
    {
        private bool state = true;
     
        public Etat()
        {
     
            //Supprimez les marques de commentaire dans la ligne suivante si vous utilisez des composants conçus 
            //InitializeComponent();
        }
     
        [WebMethod]
        public string HelloWorld() {
            return "Hello World";
        }
     
        [WebMethod]
        public void setState(bool b)
        {
            state = b;
        }
     
        [WebMethod]
        public bool getState()
        {
            return state;
        }
    }
    L'application client :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
     
    namespace ModifEtat
    {
        public partial class Form1 : Form
        {
     
            private MonServiceWeb.Etat etat;
     
            public Form1()
            {
                etat = new MonServiceWeb.Etat();
                InitializeComponent();
            }
     
            private void buttonTrue_Click(object sender, EventArgs e)
            {
                etat.setState(true);
            }
     
            private void buttonFalse_Click(object sender, EventArgs e)
            {
                etat.setState(false);
            }
     
            private void buttonGetEtat_Click(object sender, EventArgs e)
            {
                MessageBox.Show(this,"etat: " + etat.getState());
            }
        }
    }

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 68
    Points : 80
    Points
    80
    Par défaut
    Normal à chaque appel de méthode Web distante, .NET t'instancie ton service web du coup des variables d'instances sont toujours réinitialisées. Ton getState doit toujours te renvoyer true et ton setState met bien à jour ton state à true mais sur l'instance de l'objet, du coup au prochain appel la valeur est perdue.
    Pour ça plusieurs solutions : soit déclarer ta variable statique comme tu le fais, soit stockage en base de données et sur le système de fichiers.

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    En effet il me renvoie toujours la valeur mise à l'initialisation ! Merci pour l'info.

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

Discussions similaires

  1. Sérialiser un objet hérité dans webservice
    Par Rome dans le forum Services Web
    Réponses: 1
    Dernier message: 19/07/2010, 09h33
  2. Session dans WebService
    Par el_pedro dans le forum Services Web
    Réponses: 1
    Dernier message: 26/03/2010, 14h39
  3. Setter dans un module de classe
    Par Mathusalem dans le forum Général VBA
    Réponses: 2
    Dernier message: 10/11/2008, 15h25
  4. [EJB3] [WEBLOGIC] Injection dans WebService ne fonctionne pas
    Par pmartin8 dans le forum Java EE
    Réponses: 2
    Dernier message: 15/11/2007, 21h02
  5. [C#][WS] TableAdapter dans webservice
    Par dumser1 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 08/02/2006, 16h39

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