2012-05-08 2 views
0

Je développe une application en Java (JSF) qui communique avec un serveur Web WCF. J'ai développé le serveur web en utilisant C#, et j'ai du mal à envoyer l'implémentation égale d'un objet complexe au client java. Par exemple, considérons cette classe C#:Comment envoyer une implémentation de classe égale au client à l'aide d'un serveur Web WCF

[DataContract(Namespace = "http://mywebservice.com/Entidades")] 
    public class Record{private Int64 id; 
    [DataMember] 
    public Int64 Id 
    { 
     get { return id; } 
     set { id = value; } 
    } 

    public override bool Equals(Object obj) 
    { 
      if(obj is Record){ 
       Record rec = obj as Record; 
       return rec.Id == this.Id; 
     } 
     return false; 
    } 

}

Première tryed mettre le [DataMember] dans les égaux, mais j'ai découvert que je ne peux pas le faire. Comment est la bonne façon d'envoyer cette implémentation des "égales" de ce type complexe au client java?

Merci à l'avance

+0

À quoi le XML ressemblerait-il? – SLaks

+0

J'espérais qu'il était possible d'envoyer la surcharge égale au xml avec les définitions de types complexes. Quelque chose comme: ... Définitions ... PauloRLA

Répondre

4

Cela n'a aucun sens.
Les données de transfert de services Web ne sont pas du code.

Vous devez implémenter equals() dans vos objets Java dans la source.

0

Equals est une méthode, pas une propriété. En tant que tel, je ne connais aucun moyen que vous pouvez simplement exposer cette fonctionnalité dans le modèle que votre service expose.

+0

Pourrait exposer une opération qui prend deux enregistrements et retourne un bool, mais cela semble être trop. – zimdanen

+0

Si la méthode equals contient une quantité importante de logique métier, vous pouvez justifier l'ajout en tant que méthode/opération de service. Dans tous les cas, les opérations de service ne font pas partie du modèle. – MattN

+0

Il y a une logique métier significative dans la méthode égale, mais j'ai besoin de réduire autant que possible le trafic entre le serveur web et le client. Je pensais en envoyer les égaux avec la définition complexType pour réduire la surcharge, au lieu de créer une méthode webserver. Mais avec une seconde réflexion, en analysant vos réponses, cela n'a vraiment aucun sens – PauloRLA

Questions connexes