Pb avec mon WebService : perte de variable

vow Messages postés 54 Date d'inscription mardi 18 septembre 2001 Statut Membre Dernière intervention 27 juillet 2005 - 11 août 2003 à 12:41
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 - 12 nov. 2003 à 01:21
Bonjour @ tous

Je me suis mis au C# depuis peu de temps, et je crée mon premier WebService.
Un client appelle ce WS.
Mon problème est que j'ai l'impression que les variables de classe ne restent pas stockées en mémoire.

Voici mon code pour le WS

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;

namespace WS_Test
{
public class Test: System.Web.Services.WebService
{
private string strCont;

public Test()
{
//
// CODEGEN: cet appel est requis par le concepteur services Web ASP.NET
//
InitializeComponent();
}

#region Code généré par le concepteur Web Form

//Requis par le concepteur de services Web
private IContainer components = null;

/// <summary>
/// Méthode requise pour la gestion du concepteur - ne pas modifier
/// le contenu de cette méthode avec l'éditeur de code.
/// </summary>
private void InitializeComponent()
{
}

/// <summary>
/// Nettoyage des ressources utilisées.
/// </summary>
protected override void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}

#endregion

[WebMethod(Description="Methode AjCar - Copyright (c) - Vow - ")]
public string AjCar(char cCar)
{

strCont += cCar;
return strCont ;
}

}
}


Et mon code dans le client :

Random hasard = new Random();
// Création d'un caractère LETTRE au hasard
for (int i = 1 ; i <= 4; i++)
MessageBox.Show(Transf.AjCar ((char) (hasard.Next(0, (26 - 1)) + ((int)'A'))));


Chaque boite de message fait apparaitre un seul caractère.
Qu'en pensez-vous ?
Merci d'avance.

~~~~ Vow ~~~~

2 réponses

vow Messages postés 54 Date d'inscription mardi 18 septembre 2001 Statut Membre Dernière intervention 27 juillet 2005
11 août 2003 à 12:44
J'avais oublié de préciser que dans la fonction WinForm() du programme client, j'ai instancié la variable Transf :

// Déclaration de la variable dans la classe
private Test Transf = null;

// WinForm
public WinForm()
{
//
// Requis pour la gestion du concepteur Windows Form
//
InitializeComponent();
//
// TODO: Ajouter tout le code du constructeur après l'appel de InitializeComponent
//
Transf = new Test ();
}



~~~~ Vow ~~~~
0
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
12 nov. 2003 à 01:21
bonjour,

Comme je trouve que cette vieille (3 mois) question mérite une réponse,
je viens de poster un article là dessus
http://www.csharpfr.com/code.aspx?ID=17875
0
Rejoignez-nous