当前位置: 首页 > 编程语言 > C#

为什么在c#中webservice中的方法返回Arraylist会出现异常?分享

时间:2023-04-10 23:50:44 C#

c#中webservice中的方法返回Arraylist时为什么会出现异常?我正在Web服务中编写一个返回数组列表的方法,当我获取该方法时,它会生成一个异常。我的方法如下//WebserviceMethod[WebMethod]publicArrayListReceiveMessage(stringstrUser){ArrayListarrList=newArrayList();对于(inti=0;iSystem.InvalidOperationException:生成XML文档时出错。—>System.InvalidOperationException:在此上下文中不能使用System.Object[]类型。atSystem.Xml.Serialization.XmlSerializationWriter.WriteTypedPrimitive(Stringname,Stringns,Objecto,BooleanxsiType)atMicrosoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write1_Object(Stringn,Stringns,Objecto,BooleanisNullable,BooleanneedType)在System.Xml.Serialization.XmlSerializer.Serialize的Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write6_ReceiveMessageResponse(Object[]p)中(XmlWriterxmlWriter,Objecto,XmlSerializerNamespaces名称空间,StringencodingStyle,Stringid)—结惟异常堆栈跟踪—System.Xml.Serialization.XmlSerializer.Serialize(XmlWriterxmlWriter,Objecto,XmlSerializerNamespaces名称空间,StringencodingStyle,Stringid)在System.Xml.Serialization.XmlSerializer.Serialize(XmlWriterxmlWriter,Objecto,spacesSerializer类型,StringencodingStyle)atSystem.Web.Services.Protocols.SoapServerProtocol.WriteReturns(Object[]returnValues,StreamoutputStream),位于System.Web.Services.ProtSystem.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[]returnValues)ofocols.WebServiceHandlerInvoke()--内部异常堆栈跟踪结束--序列化程序不知道如何处理ArrayList中的底层对象数组。您可以通过返回另一种类型(如通用列表)或修改方法来解决此问题:[System.Xml.Serialization.XmlInclude(typeof(Object[]))]关于这篇文章的事情是你基本上告诉代理生成器要生成什么类型??的类,否则它根本不知道要生成什么并且你会得到那个异常。基于此,您的web方法代码可以重写为:[WebMethod][System.Xml.Serialization.XmlInclude(typeof(Object[]))]publicArrayListReceiveMessage(stringstrUser){for(inti=0;i如果你可以更新你的代码,最好不再使用ArrayList,你可以这样重写你的代码:[WebMethod]publicListReceiveMessage(stringstrUser){Listlist=newList();for(inti=0;iHopethishelp.以上为C#学习教程:C#中webservice中的方法返回Arraylist时为什么会出现异常?所有内容分享,如果对大家有用需要了解更多关于C#学习教程,希望大家多多关注---本文采集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除,如有侵权请联系管理员删除转载请注明出处: