webservice返回DataTable報錯無法序列化

taogchan發表於2013-07-10

今天寫了一個webservice介面,返回型別是DataTable ,執行的時候報以下錯誤:

System.InvalidOperationException: 生成 XML 文件時出錯。 ---&gt

System.InvalidOperationException: 無法序列化 DataTable。未設定 DataTable 名稱。
在 System.Data.DataTable.WriteXmlSchema(XmlWriter writer, Boolean writeHierarchy)
在 System.Data.DataTable.System.Xml.Serialization.IXmlSerializable.WriteXml(XmlWriter writer)
在 System.Xml.Serialization.XmlSerializationWriter.WriteSerializable(IXmlSerializable serializable, String name, String ns, Boolean isNullable, Boolean wrapped)
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write2_DataTable(Object o)
在 Microsoft.Xml.Serialization.GeneratedAssembly.DataTableSerializer.Serialize(Object objectToSerialize, XmlSerializationWriter writer)
在 System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
--- 內部異常堆疊跟蹤的結尾 ---
在 System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
在 System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter, Object o, XmlSerializerNamespaces namespaces)
在 System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter, Object o)
在 System.Web.Services.Protocols.XmlReturnWriter.Write(HttpResponse response, Stream outputStream, Object returnValue)
在 System.Web.Services.Protocols.HttpServerProtocol.WriteReturns(Object[] returnValues, Stream outputStream)
在 System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[] returnValues)
在 System.Web.Services.Protocols.WebServiceHandler.Invoke()

 

解決方法:

給定義的Datatable命名。程式碼:

DataTable table= new DataTable();

table.TableName = "tmp";

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22392018/viewspace-765966/,如需轉載,請註明出處,否則將追究法律責任。

相關文章