F/Other/Serialization.cs

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Runtime.Serialization;
using System.Data;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO.Compression;
using System.Linq;

namespace F.Other
{
    /// <summary>
    /// 序列化压缩/反序列化解压 类,数据量庞大的时候用
    /// </summary>
    public class Serialization
    {
        /// <summary>
        /// 序列化,并压缩(5000以上的长度压缩才有效果)/不压缩
        /// </summary>
        /// <param name="data">需要序列化的object</param>
        /// <param name="i">是否压缩(5000以上的长度压缩才有效果)</param>
        /// <returns></returns>
        public static string Set(object data, bool i)
        {
            //创建内存流
            MemoryStream memStream = new MemoryStream();
            //产生二进制序列化格式
            IFormatter formatter = new BinaryFormatter();
            //指定DataSet串行化格式是二进制
            //ds.RemotingFormat = SerializationFormat.Binary;
            //串行化到内存中
            formatter.Serialize(memStream, data);
            //将DataSet转化成byte[]
            byte[] binaryResult = memStream.ToArray();
            //清空和释放内存流
            memStream.Close();
            memStream.Dispose();
            if (i) 
            {

                return Str(Compress(binaryResult)); 
            }
            return Str(binaryResult);
            //return (binaryResult);
        }

        /// <summary>
        /// 反序列化,并解压/不解压
        /// </summary>
        /// <param name="Data">需要反序列化的byte[]</param>
        /// <param name="i">是否解压</param>
        /// <returns></returns>
        public static object Get(string Data, bool i)
        {
            byte[] BData = null;
            if (i)
            {
                BData = Decompress(Byte(Data));
            }
后面还有 99 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。