[WCF] Обработка SOAP запроса
От: Petya77  
Дата: 13.06.12 12:39
Оценка:
вот здесь
Автор: Powerz
Дата: 29.02.12
был похожий вопрос.
Вкратце, надо сделать WCF-сервис, который сможет принимать и обрабатывать SOAP-запрос такого вида:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:updateBillExt xmlns:ns2="http://rsdn.ru/">
    <login>xxxxx</login>
    <password>xxxx</password>
    <txn>xxxx</txn>
    <status>xxxx</status>
            <Message>
              <string>string 1</string>
               <string>string 2</string>                     
            </Message>
</ns2:updateBillExt>
</soap:Body>
</soap:Envelope>


Исходя из поста ссылку на который я дал вначале, я получил следующий код:


  [ServiceContract(Namespace = "http://rsdn.ru/", Name = "MyService", SessionMode = SessionMode.NotAllowed)]
    public interface IMyService
    {
        [OperationContract(Name = "updateBillExt",Action = "*")]
       void updateBillExt(updateBillInfo request);
    }


Определил контракт сообщения:

[MessageContract(WrapperName = "updateBillExt", WrapperNamespace = "http://rsdn.ru/")]
     public sealed class updateBillInfo
     {
     [MessageBodyMember(Name = "login", Namespace = "", Order = 0)]
     public string Login { get; set; }
     [MessageBodyMember(Name = "password", Namespace = "", Order = 1)]
     public string Password { get; set; }
     [MessageBodyMember(Name = "txn", Namespace = "", Order = 2)]
     public string Txn { get; set; }
     [MessageBodyMember(Name = "status", Namespace = "", Order = 3)]
     public int Status { get; set; }
     [MessageBodyMember(Name = "Message", Namespace = "", Order = 4)]
     public string[] Message { get; set; }
     }

сам метод:
       public void updateBillExt(updateBillInfo postData)
        {
        }


Проблема в следующем:
При запросе мне приходят все значения, кроме массива данных "Message".
Причём, если я из запроса убераю участок

            <Message>
              <string>string 1</string>
               <string>string 2</string>                     
            </Message>


то в Message приходит null, если оставляю, то просто пустая строка.
wса soap
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.