Serialization 手动反序列化WebRequestXML

Serialization 手动反序列化WebRequestXML,serialization,asmx,Serialization,Asmx,所以我有一个ASMXWeb服务,它返回一组搜索结果对象。当我通过浏览器调用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

所以我有一个ASMXWeb服务,它返回一组搜索结果对象。当我通过浏览器调用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>.......

岩盐牛排馆
牛排馆
mStar30
西湖北街1232号
西雅图
华盛顿州
(206) 284-1047
98109
拉雷多斯烤架
Tex-Mex棒
mStar35
阿洛哈街555号100街
西雅图
华盛顿州
(206) 218-1040
98109.......
此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

        }
    }
XmlSerializer serializer=新的XmlSerializer(typeof(List));
使用(StringReader StringReader=new StringReader(strXMLContent))//可以引发ArgumentNullException
{
使用(XmlReader=XmlReader.Create(stringReader))
{
//Read();
return((List)serializer.Deserialize(xmlReader)).ToArray();//可以引发SerializationException
}
}
我得到的错误是抱怨“xml文档(2,2)中存在错误”,而内部异常是(InnerException={“ArrayOfSearchResult xmlns=”http://tempuri.org/“不是预期的。”})

当然,当在代码中调用此WebMethod时,集合很容易被删除。直到后来我尝试手动反序列化,它才变得疯狂

任何想法都将不胜感激


谢谢

首先,为什么要通过WebRequest调用它?为什么不直接使用“添加服务引用”和代理类呢


其次,当您在浏览器中调用它时,您没有使用SOAP。请注意响应中缺少SOAP信封。

相信我,如果我可以通过代理将其内联调用,我会的。说来话长,但我必须消耗已保存的输出。至于缺少SOAP,也许这是我的问题…有没有办法强制SOAP输出?不是通过浏览器获得的,没有。