2012-05-08 2 views
0

Я разрабатываю приложение в java (JSF), которое обменивается данными с веб-сервером WCF. Я разработал веб-сервер с помощью C#, и мне трудно отправить эквивалентную реализацию сложного объекта клиенту java. Для примера рассмотрит этот класс C#:Как отправить класс равным реализации клиенту с использованием веб-сервера 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; 
    } 

}

Первого судимым ставить [DataMember] в равных, но я обнаружил, что не могу этого сделать. Как правильно отправить эту реализацию «равных» этого сложного типа в java-клиент?

Заранее спасибо

+0

Что вы ожидаете от XML? – SLaks

+0

Я надеялся, что можно отправить перегрузку равных по xml с определениями сложных типов. Что-то вроде: ... Определения ... PauloRLA

ответ

4

Это не имеет смысла.
Данные передачи веб-сервисов, а не код.

Вам необходимо реализовать equals() в вас объекты Java в источнике.

0

Равно это метод, а не собственность. Таким образом, я не знаю, как вы можете просто разоблачить эту функциональность в модели, предоставляемой вашим сервисом.

+0

Не удалось выставить операцию, которая берет в двух записях и возвращает bool, но это похоже на перебор. – zimdanen

+0

Если метод equals содержит значительную часть бизнес-логики, вы можете обосновать его добавлением как метод/операцию службы. В любом случае, служебные операции не являются частью модели. – MattN

+0

В методе существует значительная бизнес-логика, но мне нужно уменьшить столько, сколько я могу трафик между веб-сервером и клиентом. Я думал о том, чтобы отправить equals с определением complexType, чтобы уменьшить накладные расходы, а не создавать метод веб-сервера. Но со второй мыслью, анализируя ваши ответы, это действительно не имеет смысла – PauloRLA