を収容する ASP.NET ページがありますGridview
。
IDataReader
オブジェクトをグリッドにバインドしようとしています。このIDataReader
オブジェクトは、さらにいくつかのコード レイヤー (実際にはコントローラー レイヤーと DB レイヤーを形成する他の .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 (オブジェクト グラフ、ヘッダー [] inHeaders、__BinaryWriter serWriter、ブール値の fCheck) で System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (ストリーム serializationStream、オブジェクト グラフ、ヘッダー [] ヘッダー、ブール値の fCheck) で System.Runtime.Remoting.Channels.CoreChannel.SerializeBinaryMessage (IMessage メッセージ、ストリーム outputStream、ブール値の includeVersions) で System.Runtime.Remoting.Channels.BinaryServerFormatterSink.SerializeResponse (IServerResponseChannelSinkStack sinkStack、IMessage メッセージ、ITransportHeaders& ヘッダー、ストリーム & ストリーム) で 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 dataSource、ブール値の dataBinding) で 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 で
上記のスタックトレースからはあまり理解できませんでした。