[C#] [Remoting] transfert de types complexes

Résolu
mecano14 Messages postés 35 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 12 août 2006 - 25 juil. 2006 à 13:49
mecano14 Messages postés 35 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 12 août 2006 - 26 juil. 2006 à 13:41
Bonjour,
J'ai ecrit une solution Client/Serveur  qui contient 3 parties

- client
- serveur qui possède la classe de l'objet distribué.
- interface qui possède la déclaration des méthodes de l'objet distribué. (c'est une dll)

Pour mon programme, j'ai besoin d'une méthode qui renvoi au client un type "personnage"
Ce type contient des attributs comme l'age, le nom ...ainsi que des méthodes get/set associées.

J'ai crée cette classe "personnage" dans mon interface.

La communication entre le serveur et le client se passe très bien lorsque j'envoi des types comme int, string.

Par contre lorsque j'envoi des types plus complexes (personnage, ArrayList) , je recois une erreur coté client qui dit :

"Server encountered an internal error. For more information, turn off customErrors in the server's .config file."

- je ne sais pas ce qu'est ce fichier config file, je suis en C# et sur un channel TCP...
- le remoting .net ne permet t-il pas d'echanger des types complexes entre le client et le serveur?

Merci de bien vouloir m'eclairer sur le sujet :)

9 réponses

bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
25 juil. 2006 à 14:11
    [Serializable]
public class personnage{

//....

}

++
3
bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
25 juil. 2006 à 14:02
Salut

    normalement tu peux échanger n'importe quel type de données a partir du moment que tes classes soient sérialisable

++
0
mecano14 Messages postés 35 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 12 août 2006
25 juil. 2006 à 14:08
Oui j'avais lu ça quelque part mais ca consiste en quoi?

Comment savoir si la classe que j'ai crée est serialisable?
0
mecano14 Messages postés 35 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 12 août 2006
25 juil. 2006 à 14:13
J'ai juste à ajouter [Serializable] et ca devrait passer?
Si c'est le cas ca serait top :)

Par contre, apparement ArrayList ne passe pas non plus (mais je met des "personnage" dedans c'est peut-etre pour ca?)

Merci :)
0

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

Posez votre question
bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
25 juil. 2006 à 14:16
    Oui c'est par ce que tu met des objects que tu a défini toi meme donc serialise ta classe et sa devrai passé ;)
++
0
mecano14 Messages postés 35 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 12 août 2006
25 juil. 2006 à 14:18
Super j'essai ca ce soir et je dirai ce que ça donne.
Merci encore :)
0
bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
25 juil. 2006 à 14:22
    oki

Bon courage

++
0
mecano14 Messages postés 35 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 12 août 2006
25 juil. 2006 à 14:50
J'ai pas pu resister, il a fallu que je teste :)
Et ca fonctionne !
Bien joué bernie666  !!
0
mecano14 Messages postés 35 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 12 août 2006
26 juil. 2006 à 13:41
Petite question supplementaire

J'ai ajouté dans ma classe personnage un attibut "photo" de type System.Drawing.Image

Dans un thread, le client fait appel à une méthode du serveur qui renvoi un ArrayList contenant les personnages.
Cette ArrayList est ensuite exploitée pour afficher la liste des personnages dans l'interface du Client.

Ca marche bien lorsqu'un seul client est connecté (l'image s'affiche bien dans le client) mais lorsque je connecte un deuxième client, je recois l'erreur suivante

"This remoting proxy has no channel sink which means either the server
has no registered server channels that are listening, or this
application has no suitable client channel to talk to the server."

Je n'ai pas trouvé grand chose à ce sujet, sauf la page suivante qui ne m'éclaire pas beaucoup ...
http://www.cookcomputing.com/blog/archives/000308.html

D'ou cela peut-il venir?
0
Rejoignez-nous