C# Form序列化
来源:互联网 发布:模拟炒汇软件下载 编辑:程序博客网 时间:2024/05/16 12:18
对什么序列化无关紧要,但是,如果将要被序列化的对象不支持序列化(即使指定了Serializable),那么这个对象一定要实现自定义序列化,还是拿Form来说吧,它是不支持序列化的,那么对它进行如下的修改后就可以被序列化了,其它的类也类似操作:
--------将要被序列化的类,这里以Form为代表--------
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Runtime.Serialization;
using System.Drawing;
namespace SerializableApp
{
/// <summary>
/// 这里要添加对序列化的支持
/// </summary>
[Serializable]
public class SerializableForm : Form, ISerializable
{
/// <summary>
/// 常规构造函数
/// </summary>
public SerializableForm()
{
}
/// <summary>
/// 反序列化构造函数
/// </summary>
/// <param name= "info "> </param>
/// <param name= "context "> </param>
public SerializableForm(SerializationInfo info, StreamingContext context)
{
this.Name = info.GetString( "Name ");
this.Size = (Size)info.GetValue( "Size ", typeof(Size));
this.Location = (Point)info.GetValue( "Location ", typeof(Point));
}
/// <summary>
/// 自定义序列化方法
/// </summary>
/// <param name= "info "> </param>
/// <param name= "context "> </param>
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue( "Name ", this.Name);
info.AddValue( "Size ", this.Size);
info.AddValue( "Location ", this.Location);
}
}
}
--------------对序列化的测试----------------
//为了方便测试定义内存流
MemoryStream ms = new MemoryStream();
BinaryFormatter form = new BinaryFormatter();
Type type = typeof(SerializableForm);
object obj = Activator.CreateInstance(type);
//对对象进行序列化
form.Serialize(ms, obj);
ms.Flush();
//获取流中的数据以便反序列化
byte[] bts = ms.GetBuffer();
//反序列化操作
MemoryStream _ms = new MemoryStream(bts);
//生成反序列化后的对象
object ff = form.Deserialize(_ms);
- C# Form序列化
- C# Form,Control 控件序列化
- jquery form 序列化
- form表单序列化
- jqgrid form序列化
- FORM表单序列化
- form表单序列化JSON
- 将form表单序列化
- ajax提交form序列化
- seriailzeArray() form表单序列化
- form表单序列化与对象装填form表单
- C#序列非序列化
- 使用Jquery serialize序列化Form表单
- JS 获取Form表单信息序列化
- jquery form表单序列化注意事项
- 序列化form表单元素为对象
- 原生js实现form表单序列化
- jquery form表单序列化注意事项
- 未来警察(刘德华)-- 差劲,非常差劲!
- 基于Aforge的手势识别之三~~~多点手势识别
- 存储图片类型数据有以下几种方式
- Yii控制器动作的编写方法
- SQL SERVER – 2008 – Configure Database Mail – Send Email From SQL Database
- C# Form序列化
- recurrent problem[在一些平面几何中 -_-|||(我不知道这能否称之为几何。。。)]
- MySQL引擎
- 来csdn逛逛
- Spring入门
- 用select... for update注意事项
- Watir 语法(Web Application Testing in Ruby)
- JavaScript 判断浏览器类型及版本
- 从SQL语言的分类谈COMMIT和ROLLBACK的用法