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

Services Web Discussion :

[débutant]probleme avec les constructeurs


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 97
    Par défaut [débutant]probleme avec les constructeurs
    alors voila , j'ai développé un web service , ou il y a des constructeurs ou j'ai définie les paramètres necessaires .
    dans l'application cliente (biensure apres ajout du webservice comme referance). quand j'instancie le web service (classe proxy) , j'arrive pas à ajouter ses paramètres. il ne m'affiche pas les paramètres définis dans les constructeurs .

    quelqu'un a une explication SVP !

  2. #2
    Membre éclairé Avatar de akecoocoo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 78
    Par défaut
    Probablement parce que tu instancies l'objet Proxy qui ne contient aucun paramètre dans son constructeur.

    Appelles tu bien les méthodes de ton objet Proxy ?

    Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // Constructeur Proxy
    net.developpez.webservices.Authentification service = new net.developpez.webservices.Authentification();
     
    // Méthodes Proxy
    if (service.existeUtilisateur(login)
        service.verifierMotDePasse(login,password);

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 97
    Par défaut
    mais j'ai mis une constructeur !! bon je réexplique en détail :
    1. j'ai defini un type colonne avec les constructeurs suivant, comme ce ci :
    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
     public class Column
        {
            private string name;
            private string internalName;
            //private Type datatype;
            private List<Double> rows;
     
            public Column(string ColmnName, string ColomnInternalName)
            {
                this.name = ColmnName;
                this.internalName = ColomnInternalName;
                // this.datatype = DataTypeName;
                this.rows = new List<Double>();
     
            }
     
            public Column()
            {
                this.name = "";
                this.internalName = "";
                this.rows = new List<double>();
            }
     
            public Column(int Dim)
            {
                this.name = "";
                this.internalName = "";
                this.rows = new List<double>();
                for (int i = 0; i < Dim; i++) this.Rows.Add(0);
            }
    2. j'ai ensuite défini une classe matrice (qui elle contient des colonnes) avec les constructeurs suivants :
    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
    public class Matrix
        {
            private List<Column> columns;
     
            public List<Column> Columns
            {
                get { return columns; }
                set { columns = value; }
            }
     
            public Matrix()
            {
                this.columns = new List<Column>();
            }
     
            public Matrix(int row, int col)
            {
                Column colonne;
                this.columns = new List<Column>();
     
                /* Initialiser la colonne à 0 */
                for (int j = 0; j < col; j++)
                {
                    colonne = new Column();
                    for (int i = 0; i < row; i++)
                        colonne.Rows.Add(0);
                    this.columns.Add(colonne);
                }
     
            }
    3. j'ai mis les deux classe dans un name space Colomn, (et j'ai generer la DLL Colomn pour l'utiliser par la suite)
    4. j'ai defini une Interface contenant les methodes. (-> DLL interface)
    5. enfin dans mon web service, j'ai d'abord ajouter les réferances "Common" et "Iterface" , j'ai aussi défini un constructeur comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public Service (string name)
        { 
            Analyse = Assembly.LoadFrom("C:\\Mes DLL\\DLL2.dll");
            foreach (Type type in Analyse.GetTypes())
            {
                if (name == type.Name)
                {
                    maface = (Iface)Activator.CreateInstance(type);
                }
            }
        }
    le Probleme maintenant , c'est que quand j'utilise le web service dans mon application cliente , il ne m'affiche pas les paramètres définis dans les constructeurs, que ce soit pour le constructeur du web service ou les constructeurs de la matrice (matrix) . pourtant tout est attaché , les Dll aux web service , et le web service dans l'application .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LeWebService.Service MyAnalyse = new LeWebService.Service();
                LeWebService.Matrix M = new LeWebService.Matrix();
    de l'aiiiiiiiiiiiiiiiiide SVP , je sais plus quoi faire

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 14
    Par défaut
    Je relance ton sujet, j'ai le même problème.

    Moi aussi, j'ai défini des classes dans mon webservice, avec un constructeur vide et un constructeur surchargé.

    L'application cliente qui consomme mon webservice est bien capable de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MonWebservice.MaClasse exemple = new MonWebservice.MaClasse();
    exemple.login = "log";
    exemple.password = "pass";
    mais pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonWebservice.MaClasse exemple = new MonWebservice.MaClasse("log", "pass");

    Quelqu'un a une idée ?

    Merci d'avance.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 14
    Par défaut
    Bon , mauvaise nouvelle, j'ai beau chercher, je trouve comme seule explication que les classes définies dans un webservice servent uniquement de structure, et comme elles sont serialisées lors de la compilation pour définir le WSDL, elles se servent uniquement du constructeur vide.

    Ainsi le WSDL ne contient que la définition de la classe, SANS les possibles méthodes internes ou constructeurs surchargés....

    Le client a donc simplement la possibilité d'instancier une classe avec un constructeur vide, puis de remplir les attributs à la main


    Une autre possibilité est de créer une WebMethod, qui elle va construire l'objet du coté WebService grâce au constructeur surchargé.
    Elle pourra donc être appelée par le client avec des paramètres, construira l'objet grâce au constructeur surchargé et renverra l'objet au client.
    Inconvénient : beacoup plus d'échange entre le client et le WebService.

    Ce sont les seules solutions que j'ai trouvé, si quelqu'un a déja rencontré ce problème, merci de nous en faire part !

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 97
    Par défaut
    merci beaucoup Abakai , j'avais pensé à ça , mais j'ésperais toujours une autre réponse , en tout cas je ne vais pas mettre résolu.
    merci encore

Discussions similaires

  1. probleme avec les constructeur en java
    Par amal88 dans le forum Langage
    Réponses: 11
    Dernier message: 10/03/2007, 02h32
  2. [Débutant] Probleme avec les pointeurs
    Par amira dans le forum C
    Réponses: 14
    Dernier message: 04/12/2006, 15h27
  3. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 14h26
  4. Problem avec les *.AVI sur les panels
    Par NaDiA_SoFt dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/08/2003, 23h50
  5. probleme avec les processus
    Par saidi dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/02/2003, 01h18

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