2012-02-22 4 views
0

У меня есть метод wcf, который принимает объект «Заказать» в качестве его ввода и возвращает объект «ResultSet». Я создал тестовый проект, добавил ссылку на мой проект objectModel и без проблем избавился от службы.Потребление службы WCF с пользовательским объектом в качестве входного параметра

Я добавил атрибуты DataContract и DataMember к свойствам объектов Order (мой класс Order находится в отдельном проекте, чем службы wcf не уверены, что это входит в игру или нет?). То, что я туман, это то, что, если клиент, потребляющий эту услугу, делает это в приложении Java или что-то в этом роде? Как он перейдет к моей службе объект типа «Порядок»? Кроме того, как он получит и объект типа ResultSet?

Будет ли этот сценарий работать как есть? Является ли эта информация об объекте, автоматически заполненном ссылкой службы? Даже если это так, можно сказать, что приложение java даже передает мой объект типа Order?

+0

На самом деле это «просто работает». –

+0

@John, как вы собираетесь использовать мою службу в приложении Java, и передать ей объект типа «Заказ»? –

ответ

0

Приложение Java не должно передавать объект того же типа, он должен передать сообщение, удовлетворяющее контракту, установленному вашим сервисным интерфейсом.

Рассмотрите возможность использования только .NET. Допустим, у вас есть этот договор обслуживание/данные:

namespace MyServer 
{ 
    [ServiceContract(Namespace="http://example.com/foo")] 
    public interface IMyService 
    { 
     void Foo(Bar bar); 
    } 

    [DataContract(Namespace="http://example.com/foo")] 
    public class Bar 
    { 
     [DataMember] 
     public string Result { get; set; } 
    } 
} 

Теперь, скажем, вы хотите, чтобы рука код клиент, вы можете сделать свою собственную реализацию контракта данных (обратите внимание, что это в разностных именах и, вероятно, в другом сборка, чем выше код):

namespace MyClient 
{ 
    [DataContract(Namespace="http://example.com/foo")] 
    public class Bar 
    { 
     [DataMember] 
     public string Result { get; set; } 
    } 
} 

это другой тип , но он все равно будет сериализации/десериализации правильно через WCF, потому что сообщение правильно построено. Тот же принцип работает с клиентом Java. Пока ваш Java-код способен построить правильное сообщение, он будет работать нормально.

Смежные вопросы