【发布时间】:2012-08-03 10:48:25
【问题描述】:
我有一个包含Gridview 的 ASP.NET 页面。
我正在尝试将IDataReader 对象绑定到网格。这个IDataReader 对象是通过调用更多的代码层(实际上是形成控制器层和数据库层的其他.ent 项目dll)分配的,然后最终绑定到我的网格。
gridview1.Datasource = dr(dr 是我的 IDataReader),我没有发现任何问题。
但在 gridview1.Databind 行我得到一个异常,异常对象中的详细信息如下:
{“在程序集 'System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 中键入 'System.Data.Common.DbEnumerator' 未标记为可序列化。”}
我不确定应用程序出了什么问题。有什么想法或方法吗?
编辑 1
添加堆栈跟踪异常:
服务器堆栈跟踪: 在 System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType 类型) 在 System.Runtime.Serialization.FormatterServices.GetSerializableMembers(类型类型,StreamingContext 上下文) 在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() 在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(对象 obj,ISurrogateSelector surrogateSelector,StreamingContext 上下文,SerObjectInfoInit serObjectInfoInit,IFormatterConverter 转换器,ObjectWriter objectWriter) 在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(对象 obj,ISurrogateSelector surrogateSelector,StreamingContext 上下文,SerObjectInfoInit serObjectInfoInit,IFormatterConverter 转换器,ObjectWriter objectWriter) 在 System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(对象图,Header[] inHeaders,__BinaryWriter serWriter,布尔 fCheck) 在 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(流序列化流,对象图,标头 [] 标头,布尔 fCheck) 在 System.Runtime.Remoting.Channels.CoreChannel.SerializeBinaryMessage(IMessage 消息,流输出流,布尔包含版本) 在 System.Runtime.Remoting.Channels.BinaryServerFormatterSink.SerializeResponse(IServerResponseChannelSinkStack sinkStack,IMessage 消息,ITransportHeaders& 标头,Stream& 流) 在 System.Runtime.Remoting.Channels.BinaryServerFormatterSink.ProcessMessage(IServerChannelSinkStack sinkStack,IMessage requestMsg,ITransportHeaders requestHeaders,流 requestStream,IMessage& responseMsg,ITransportHeaders& responseHeaders,Stream& responseStream) 在 [0] 处重新抛出异常: 在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg) 在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 类型) 在 System.Collections.IEnumerable.GetEnumerator() 在 System.Collections.IEnumerable.GetEnumerator() 在 System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable 数据源,布尔数据绑定) 在 System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable 数据) 在 System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable 数据) 在 System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable 数据) 在 System.Web.UI.DataSourceView.Select(DataSourceSelectArguments 参数,DataSourceViewSelectCallback 回调) 在 System.Web.UI.WebControls.DataBoundControl.PerformSelect() 在 System.Web.UI.WebControls.BaseDataBoundControl.DataBind() 在 System.Web.UI.WebControls.GridView.DataBind() 在 Drive.CampaignManager.CreateQuery.GridViewBind() 在 Mycode.aspx.cs从上面的堆栈跟踪中无法理解太多。
【问题讨论】:
标签: asp.net serialization idatareader