[WebService/VB2005] Parametre dans le constructeur

cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 - 9 janv. 2007 à 10:57
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 - 9 janv. 2007 à 13:37
Bonjour à tous,

J'ai une variable (integer) qui doit être propre à un application distante.
Plutot que de la passer dans chacune des webMethodes, j'aimerais savoir si c'est possible de la passer une fois dans le "create". Du style:
...Dim wsAppv As New monServeur.monWebService(maVar)
Et qu'elle soit connue dans toute la classe ensuite.

Admettons qu'on à 2 PC à se connecter en même temps au web service:

PC1: Dim wsAppv As New monServeur.monWebService(1)
PC2: Dim wsAppv As New monServeur.monWebService(2)

PC2: wsAppv.retourneMaVar() ' Returne 2
PC1: wsAppv.retourneMaVar() ' Returne 1

J'ai bien trouvé ça:

Public Sub New(ByVal maVar As Integer) ' constructeur
MyBase.New()
numInv = maVar
End Sub

Mais ça ne change rien, le client refuse de compiler malgré que j'ai mis l'appel au webservice à jour.
Il ne reconnait pas mon nouveau constructeur...Il me dit qu'il y a trop d'arguments.

Manque t-il une manip ?

Merci d'avance.

<!-- / message -->
<!-- sig -->



5 réponses

Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
9 janv. 2007 à 12:45
De quoi hérite monWebService ?
S'il n'hérite de rien, il est inutile de mettre MyBase.New()
__________________________
Julien.
0
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 1
9 janv. 2007 à 13:01
Bonjour Julien,

En effet, il n'hérite de rien... J'ai mis ça car je l'ai vu dans une majorité de cas.

(En fait, il s'apelle: Service).
<

Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Public
Class Service

Inherits System.Web.Services.WebService

Dim _numInv
As
Integer = 1

Public
Sub
New()

End
Sub

Public
Sub Service(
ByVal maVar
As
Integer)

_numInv = maVar

End
Sub
...

Mais je ne suis pas sur que le pb vienne du coté webservice, mais plutot de l'application client.

En effet, si j'enlève la methode new(), l'application client se compile bien, mais à l'execution, il me fait une erreur du style: "Pas de constructeur sans parametres".
Mais lorsque j'en met un, il ne veut plus compiler... :-(
Dim wsInv
As
New monServeur.Service(2)

Qu'est ce qu'il se passe ?
0
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 1
9 janv. 2007 à 13:05
Mince, j'ai écrit une erreur, je faisait des essais..

Voici mes 2 constructeurs:

Public Sub New()

End Sub

Public Sub New(
ByVal maVar
As Integer)_numInv = maVar

End Sub
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
9 janv. 2007 à 13:25
Heu, tu me dis qu'il n'hérite de rien, pourtant je vois ceci dans ta classe :

Inherits System.Web.Services.WebService

Sinon, moi quand je compile ceci, j'ai aucun problèmes...

Public Class Form1
  Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim s As New Service(2)
    MsgBox(s.GetMaVar)
  End Sub
End Class

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class Service
  Inherits System.Web.Services.WebService

  Dim _numInv As Integer = 1

  Public Sub New(ByVal maVar As Integer)
    MyBase.New()
    _numInv = maVar
  End Sub

  Public Function GetMaVar() As Integer
    Return _numInv
  End Function
End Class, ----
(Coloration syntaxique automatique par Kenji)

Julien.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 1
9 janv. 2007 à 13:37
Le inherits, il l'a mis tout seul.. C'est générique, nan ?

Si je ne met que "Service", il me fait une erreur de syntaxe... Comment fait-tu ? Tu as changé le folder name ?
J'ai peut être sauté une étape... Pourtant, il marchait bien mon web service, jusqu'à ce que je veuille surcharger le constructeur.
Je viens de supprimer la web référence pour la réinserer et rien n'y fait.
(je la déclare avec les variables publiques pour ne pas le refaire à chaque fois... Sinon, j'ai essayé dans le form_load mais c'est pareil)

Bon, j'utilise VS2005 version 90 jours, je vais dans projet/add web référence et je met mon lien. Il me la trouve et me l'ajoute, tout simplement.

Mon web service est également créé avec VS2005.
0
Rejoignez-nous