Architecture Net



         

Особенности форматирования данных согласно спецификации SOAP - часть 3


Чтобы запустить данную профамму, создайте на основе каталога SOAP Differ-ences\WebService виртуальный каталог SOAPWebServiceTest. Затем укажите в адресной строке Internet Explorer следующий унифицированный указатель информационного ресурса (URL) http://localhost/SOAPWebServiceTest/CustomerList.asmx?op=GetList. Internet Explorer распознает, что файл, определяемый этим указателем информационного ресурса (URL), реализует Web-службу. Вид окна Internet Explorer приведен на рис. 11.3.

Если вы попытаетесь активизировать Web-службу прямо сейчас, то будет выдано следующее сообщение об ошибке:

System.Exception: There was an error generating the XML


document. ---> System.Exception: A circular reference


was detected while serializing an object of type Customer.


at System.Xml.Serialization.XmlSerializationWriter.
WriteStartElement(String name, String ns, Object o,
Boolean writePrefixed)
...
at System.Xml.Serialization.XmlSerializer.Serialize
(XmlWriter xmlWriter, Object o,
XmlSerializerNamespaces namespaces)
...

Пере вод такой [Добавлен редактором русского перевода. — Прим. ред.]:

Система.Исключение: Была ошибка при генерации XML-
документа.---> Система.Исключение: циклическая ссылка
была обнаружена при преобразовании в последовательную
форму объекта типа
Клиент.
в Системе.Xml.Преобразование в последовательную
форму XmlSerializationWriter.
WriteStartElement (Строковое имя, Строка ns, Объект о,
Булева переменная wrxtePrefixed)
...
в Системе.Xml.Преобразование в последовательную
форму.XmlSerializer.Преобразовать в последовательную форму
(XmlWriter xmlWriter, Объект о,
XmlSerializerNamespaces пространство имен)
...

3.gif


Рис 11.3 Internet Explorer распознал файл CustomerList. автхкак Web-службу

Причина ошибки в том, что параллельно-последовательный преобразователь языка XML, который используется Web-службой, не умеет обрабатывать циклические ссылки Если в тексте закомментировать строку cust2 .next = custl, а затем снова скомпоновать проект и скопировать сборку WebService. dll в каталог bin, Web-служба возвратит следующий ответ [В приведенном ниже файле для удобства ориентирования вставлены комментарии вида < ' -- комментарий -->, в самом файле, их, естественно, не будет — Прим ред].




Содержание  Назад  Вперед