Нужны советы по обработке общих ответов SOAP - PullRequest
0 голосов
/ 12 мая 2011

Я работаю над графическим интерфейсом (WPF) нового приложения, которое будет отправлять различные запросы SOAP и получать ответы SOAP, которые будут сформированы с использованием универсального формата.Вот пример ответа:

  <SOAP-ENV:Body>
    <TheResponse>
        <MetaData>
          <DataSchema>
            <ColumnSchema type="decimal" ref="c0" name="min" />
            <ColumnSchema type="decimal" ref="c1" name="max" />
          </DataSchema>
        </MetaData>
        <Data>
          <Item>
            <c0>0</c0>
            <c1>1</c1>
          </Item>
        </Data>
    </TheResponse>
  </SOAP-ENV:Body>

Итак, как вы можете видеть, ответ SOAP будет определять метаданные, а затем фактические данные.Мне нужно создавать разные объекты в зависимости от запроса / ответа.В этом примере объект будет иметь два свойства, Min и Max, значения которых равны 0 и 1. соответственно.

Если у меня есть классы, определенные для объектов, которые, я знаю, мне понадобятся, например:

class MyClass
{
   public decimal Min {get; set;}
   public decimal Max {get; set;}
}

как мне выполнить десериализацию ответа SOAP для создания соответствующего объекта?

Спасибо за помощь.

1 Ответ

0 голосов
/ 12 мая 2011

Я бы порекомендовал начать с определения схемы XML для вас. Сообщение Soap с использованием XSD .

Если у вас есть схема, вы можете сгенерировать класс с помощью следующего:

В командной строке Visual Studio 2010 выполните
Xsd.exe schema.xsd / classes / language: [CS | VB].

Теперь, когда у вас есть класс, вы можете использовать Сериализация XML для преобразования из объекта в XML и из XML в объект с использованием класса, созданного с помощью XSD.

Эти шаги устраняют необходимость вручную писать код для изучения / анализа XML.

...