我们可以很容易地将类序列化为平面文件,但是如果我想将类序列化为数据库,那么我怎么能这样做呢?如果可能的话,我怎样才能将数据从数据库反序列化为类.请在c#中提供示例代码.
谢谢
与其他已经说过的一样,您可以使用二进制序列化在内存流中获取Byte []数组,然后在Blob/image类型的数据库中创建一个列来存储字节数组.
然后在回读时,您只需使用称为反序列化的技术读取流中列的值
序列化
BinaryFormatter bf = new BinaryFormatter();
List<SearchFilterDetails> _list = QueryFilterDetails.ToList<SearchFilterDetails>();
using (MemoryStream ms = new MemoryStream())
{
bf.Serialize(ms, _list);
return ms.GetBuffer();
}
Run Code Online (Sandbox Code Playgroud)
反序列化
private void DeSerilizeQueryFilters(byte[] items)
{
BinaryFormatter bf = new BinaryFormatter();
List<SearchFilterDetails> _list = new List<SearchFilterDetails>();
try
{
using (MemoryStream ms = new MemoryStream())
{
ms.Write(items, 0, items.Length);
ms.Position = 0;
_list = bf.Deserialize(ms) as List<SearchFilterDetails>;
}
foreach (SearchFilterDetails mobj in _list)
{
QueryFilterDetails.Add(mobj);
}
}
catch (Exception ex)
{
}
}
Run Code Online (Sandbox Code Playgroud)