序列化问题解决

System.InvalidOperationException: 生成 XML 文档时出错。 ---> System.InvalidOperationException: System.Data.Linq.Binary 无法序列化,因为它没有无参数的构造函数。 在 System.Xml.Serialization.TypeDesc.CheckSupported() 在 System.Xml.Serialization.TypeScope.GetTypeDesc(Type type, MemberInfo source, Boolean directReference, Boolean throwOnError) 在 System.Xml.Serialization.ModelScope.GetTypeModel(Type type, Boolean directReference) 在 System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type, XmlRootAttribute root, String defaultNamespace) 在 System.Xml.Serialization.XmlSerializerFactory.CreateSerializer(Type type, XmlAttributeOverrides overrides, Type[] extraTypes, XmlRootAttribute root, String defaultNamespace, String location, Evidence evidence) 在 System.Xml.Serialization.XmlSerializerFactory.CreateSerializer(Type type, XmlRootAttribute root) 在 System.Data.Common.ObjectStorage.GetXmlSerializer(Type type, XmlRootAttribute attribute) 在 System.Data.Common.ObjectStorage.ConvertObjectToXml(Object value, XmlWriter xmlWriter, XmlRootAttribute xmlAttrib) 在 System.Data.XmlDataTreeWriter.XmlDataRowWriter(DataRow row, String encodedTableName) 在 System.Data.XmlDataTreeWriter.SaveDiffgramData(XmlWriter xw, Hashtable rowsOrder) 在 System.Data.NewDiffgramGen.Save(XmlWriter xmlw, DataTable table) 在 System.Data.DataSet.WriteXml(XmlWriter writer, XmlWriteMode mode) 在 System.Data.DataSet.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_DataSet(Object o) 在 Microsoft.Xml.Serialization.GeneratedAssembly.DataSetSerializer.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()

这个问题一直很困扰我,因为这个服务和其他服务一样,返回的类型也是DataSet类型的值,其他服务都能正常运行,为什么这个服务的序列化会出问题呢?真是百思不得其解。 昨天终于下定决心解决这个疑难杂症。把这个服务从头跟到尾,一步一步跟踪。可是没有报错的地方啊?加上try catch也没有什么异常?问题到底出在哪里呢?最后猛然想起是不是TimeStamp这列的问题呢?我的服务返回的是DataSet类型,但是在返回之前有调用一个吧list转化为DataSet的方法,在这个方法里会从list中的每行每列里一一取值放入Dataset的table的列里。于是我把Datastamp这列去掉,只把其他列放入table中,终于服务能够正常返回结果,序列化的问题不再出现.问题终于解决了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值