Как я могу создать собственное сообщение SOAP - PullRequest
0 голосов
/ 30 марта 2011

У меня есть сайт, который дает мне xml-ответ на мой запрос GET:

<ServerUnits>
    <State Name="ServerName" Date="2008-04-01" >
    <Users>
       <User login="someUser1" Password="123456">
       <User login="someUser2" Password="qwerty">
    </Users>
</ServerUnits>

Я хочу использовать WCF Client для работы с этим сервисом.Как отказаться от сообщения Контракт этого ответа для WCF Clien

Ответы [ 3 ]

0 голосов
/ 30 марта 2011

Я думаю, что WCF бесполезен в вашем случае.

Более простым способом было бы написать объекты, соответствующие этому ответу xml, и просто десериализовать поток xml на экземпляры объектов.

0 голосов
/ 30 марта 2011

Лучше всего создавать клиентские прокси для службы WCF.Он создаст для вас контракты данных (как упомянуто @Aliostad), поэтому вам не нужно создавать их вручную.Для этого щелкните правой кнопкой мыши свое решение и выберите «Добавить ссылку на службу ...» в контекстном меню и введите адрес службы WCF.

0 голосов
/ 30 марта 2011

То, что вы опубликовали, не является SOAP-сообщением, поэтому MessageContract не подходит.

Я представляю, что вы опубликовали содержание тела SOAP, поэтому вам нужно сделать что-то вроде этого:

[DataContract]
public class ServerUnits
{
    [DataMember]
    public ServerState State { get; set; }

    [DataMember]
    public List<User> Users { get; set; }
}

[DataContract]
public class ServerState
{
    [DataMember]
    public string Name { get; set; }

    [DataMember]
    public DateTime Date { get; set; }
}

[DataContract]
public class User
{
    [DataMember]
    public string login { get; set; }

    [DataMember]
    public string password { get; set; }

}

UPDATE

Ваше сообщение не является SOAP. Но вы все равно можете использовать приведенный выше код, если вы используете webHttpBinding, который отправляет и получает POX.

...