2016-02-04 2 views
1

Мыла откос как:Как читать мыльный отклик в C#?

<?xml version="1.0" encoding="utf-8" ?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Body> 
     <LoginResponse xmlns="http://example.com/SystemIntegration"> 
      <FirstName>@FirstName</FirstName> 
      <LastName>@LastName</LastName> 
     </LoginResponse> 
    </soap:Body> 
</soap:Envelope> 

Я пытаюсь читать как:

XDocument doc = XDocument.Parse(strReturnStatus); 
List<XElement> result = doc.Elements("LoginResponse").ToList(); 
for (int intc = 0; intc <= result.Count - 1; intc++) 
{ 
    strResponseCode = result[intc].Element("FirstName").Value.ToString(); 
    strResponseText = result[intc].Element("LastName").Value.ToString(); 
} 

Но возвращение null результата.

Как читать выше ответа в asp.net c# ??

+0

Это вопрос спецификации пространства имен. Обратитесь к следующему ответу: http://stackoverflow.com/q/12201822/952310 –

ответ

2

Проще всего создать прокси-класс для вашего сервиса.

Вы можете сделать это, используя 'Add Service Reference' option in Visual Studi o. Введите URL-адрес службы, и Visual Studio будет генерировать исходный код для вас.

С этого момента вы можете получить доступ к службе, используя код C#. Нет необходимости вручную извлекать полезную нагрузку из сообщения SOAP.

Обратите внимание, что вы являетесь разработчиком сервиса: веб-службы ASMX устарели уже давно. Если можно, используйте WCF. Метод

1

Используйте Наследники() в XDocumentobject для навигации по узлам XML, чтобы получить элементы, вы можете следовать инструкциям, приведенным в этой статье Using C# to parse a SOAP Response