持久化一个对象

Posted 我没有领悟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了持久化一个对象相关的知识,希望对你有一定的参考价值。

1.对象与文件之间序列化/反序列化

       public static void SerializeToFile<T>(T obj,string dataFile)
        {
            using (FileStream fileStram = File.Create(dataFile))
            {
                BinaryFormatter binSerializer = new BinaryFormatter();
                binSerializer.Serialize(fileStram, obj);
            }
        }

        public static T DeserializeFromFile<T>(string dataFile)
        {
            T obj = default(T);
            using (FileStream fileStream = File.OpenRead(dataFile))
            {
                BinaryFormatter binSerializer = new BinaryFormatter();
                obj =(T)binSerializer.Deserialize(fileStream);
            }
            return obj;
        }

测试:

       static void Main(string[] args)
        {
            ArrayList list = new ArrayList() { "Zero", "One", "Two" };
            SerializeHelper.SerializeToFile(list, "HT.data");
            ArrayList list2 = SerializeHelper.DeserializeFromFile<ArrayList>("HT.data");
            foreach (var item in list2)
            {
                Console.WriteLine(item.ToString());
            }

            Console.ReadKey();
        }

2.对象与字节流之间序列化/反序列化

        public static byte[] Serialize<T>(T obj)
        {
            using (MemoryStream memStream = new MemoryStream())
            {
                BinaryFormatter binSerializer = new BinaryFormatter();
                binSerializer.Serialize(memStream, obj);
                return memStream.ToArray();
            }
        }

        public static T Deserialize<T>(byte[] serializedObj)
        {
            T obj = default(T);
            using (MemoryStream memStream = new MemoryStream(serializedObj))
            {
                BinaryFormatter binSerializer = new BinaryFormatter();
                obj = (T)binSerializer.Deserialize(memStream);
            }
            return obj;
        }

 

以上是关于持久化一个对象的主要内容,如果未能解决你的问题,请参考以下文章

片段中的Firebase数据不是持久的,会重新下载

SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段

AngularJS ——ngResourceRESTful APIs 使用

回栈事务后如何持久化分片数据?

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象