在SqlServer的SessiosnState模式下,设置数据集可序列化
本文关键字:设置 数据集 序列化 SqlServer SessiosnState 模式 | 更新日期: 2023-09-27 18:11:47
我们有基于web的应用程序,我们使用数据集来存储信息。我们习惯于将这些数据集存储在会话中,并在Ajax调用期间从会话中获取并更新它们。此时Session State为InProc。
现在我们想在Sql Sever中存储会话数据,为了在会话中存储,我们需要创建数据集[Serializable]
我用正常的数据集测试它工作得很好,但在我们的情况下,我们通过继承DataSet来创建我们的DataSet,如
public class OurDataSet : DataSet
{
#constants
all the column names are used in all the tables are used as Constants.
#constructor
// add all the related tables
public OurDataSet()
{
this.Tables.Add(OurDataTable());
}
public static DataTable OurDataTable()
{
}
}
我的问题是,我不能序列化这个对象,即使用[Serializable]属性装饰。
- 如何在SQLServer会话模式下存储此数据集并将其取回
- 它序列化很好,但给了我以下错误从sqlserver获取数据。没有找到反序列化"OurDataSet"类型对象的构造函数。
谢谢
DataSet
使用自定义序列化(ISerializable
) -这意味着您需要添加一个支持构造函数:
protected OurDataSet(SerializationInfo information, StreamingContext context)
: base(information, context) {}
注意基本实现应该处理所有细节——你不需要添加任何东西。这可以是对默认构造函数的补充:
public OurDataSet() {}