ТАК У меня есть веб-сервис ASMX, который возвращает массив объектов результатов поиска.Когда я вызываю WebMethod через браузер, генерируется следующий XML ...
<?xml version="1.0" encoding="utf-8"?><ArrayOfSearchResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/"><SearchResult>
<Name>Rock Salt Steak House</Name>
<BusinessType>Steakhouses</BusinessType>
<Rating>mStar30</Rating>
<Address>1232 Westlake Ave N</Address>
<City>Seattle</City>
<State>WA</State>
<Phone>(206) 284-1047</Phone>
<Zip>98109</Zip></SearchResult><SearchResult>
<Name>Laredos Grill</Name>
<BusinessType>Tex-Mex Bars</BusinessType>
<Rating>mStar35</Rating>
<Address>555 Aloha St Ste 100</Address>
<City>Seattle</City>
<State>WA</State>
<Phone>(206) 218-1040</Phone>
<Zip>98109</Zip></SearchResult>.......
Этот XML сохраняется в файле для последующей десериализации.Проблема в том, что я не могу снова его сериализовать.Вот код, который я использую ....
XmlSerializer serializer = new XmlSerializer(typeof(List<Service.SearchResult>));
using (StringReader stringReader = new StringReader(strXMLContent)) // can throw ArgumentNullException
{
using (XmlReader xmlReader = XmlReader.Create(stringReader))
{
//xmlReader.Read();
return ((List<Service.SearchResult>)serializer.Deserialize(xmlReader)).ToArray(); // can throw SerializationException
}
}
Я получаю сообщение об ошибке "в XML-документе (2,2) есть ошибка", а внутреннее исключение - (InnerException = {"ArrayOfSearchResultxmlns = 'http://tempuri.org/' не ожидалось. "})
Конечно, при вызове этого WebMethod в коде коллекция легко падает.До тех пор, пока я не попытаюсь вручную десериализовать позже, я просто схожу с ума.
Любые идеи будут высоко оценены ...
Спасибо!