如何将类序列化为数据库而不是文件系统c#

Tho*_*mas 4 c#

我们可以很容易地将类序列化为平面文件,但是如果我想将类序列化为数据库,那么我怎么能这样做呢?如果可能的话,我怎样才能将数据从数据库反序列化为类.请在c#中提供示例代码.

谢谢

Tal*_*ner 8

与其他已经说过的一样,您可以使用二进制序列化在内存流中获取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)