1.将文件保存序列化至文档中,然后再读取:

//首先创建可序列化的实体类

[serializable]

public class message
{
public string name { get; set; }
public int age { get; set; }
public datetime time { get; set; }
public char gender { get; set; }
}

 

下面是序列化保存文件,以及反序列化读取文件

插入命名空间:using system.io;
       using system.runtime.serialization.formatters.binary;
1 private void btn_click(object sender,eventargs e){ 2 3 message ms=new message() 4 5 { 6   name=this.txt_name.text.trim().tostring(), 7 8   age=convert.toint32(this.txt_age.text.trim()), 9 10   time=convert.todatetime(this.txt_time.text.trim()), 11 12   gender=convert.tochar(this.txt_gender.text.trim()) 13 }; 14 15 this.writerfile(ms); 17 } 19 private void writefile(object message){ 20   //创建序列化文件 22   filestream fs=new filestream("messagefilename",filemode.create) 24   //创建二进制格式化器 26   binaryformatter bf=new binaryformatter(); 28   //将对象序列化 30   bf.serialize(fs,message); 32   fs.close(); 34 } 38 //反序列化 将文本信息反序列化读取出来 39 40 private void btn_read_click( object sender,eventargs e){ 41   readfile(); 42 } 44 private void readfile(){ 45   //打开序列化文件 47   filestream fs=new filestream("messagename",filemode.open) 49   binaryformatter bf=new binaryformatter(); 51   //将文件反序列化 53   message ms=(message)bf.deserialize(fs); 55   //进行赋值 57   txt_name.text=ms.name.tostring(); 59   fs.close(); 60 }

2.对xml文件序列化和反序列化

公有属性:

public class rspitempicset
    {
       // 操作返回xml示例,按这个xml格式定义可序列化的实体类
        public static string str = @"<rspitempicset>
            <functionid>setitemspics</functionid>
            <time>2017-09-07 15:51:04</time>
            <itemsidlist>
                <itemidinfo>
                    <itemid>43545346</itemid>
                    <opercode>1</opercode>
                    <operation>操作失败</operation>
                </itemidinfo>
                <itemidinfo>
                    <itemid>1125507057</itemid>
                    <opercode>0</opercode>
                    <operation>操作成功</operation>
                </itemidinfo>
            </itemsidlist>
        </rspitempicset>";
                
                public string functionid { get; set; }        
                public string time { get; set; }
                public list<itemidinfo> itemsidlist { get; set; }
                public class itemidinfo
                {
                    public string itemid { get; set; }
                    public string opercode { get; set; }
                    public string operation { get; set; }
                }
    }



//插入命名空间
    using system.io;
    using system.xml.serialization

//对xml文件进行反序列化
    private void btn_read_click(object sender,eventargs e)
{
 //创建序列化对象
       xmkserializer se=new xmlserializer(typeof("类名"))
//将xml格式字符串转为utf8的格式编码
        byte[] arry=encoding.utf8.getbytes("xml格式字符串");
 //指定流的对象
    stream me=new memorystream(arry);
 //将xml字符串反序列化
    rspitempicset rsp=(rspitempicset)se.deserialize(me);
//给文本框赋值
    textbox1.text=resp.itemsidlist[0].itemid;
}
//对xml文件序列化
private void btn_write_click(object sender,eventargs e)
{
//将xml节点类实例化
  rspitempicset rsp=new rspitempicset();
  rep.functionid="一个值";
  list<rspitempicset.itemidinfo> itemidinfos=new list<rspitempicset.itemidinfo>();
  rspitempicset.itemidinfo idi=new rspitempicset();
  idi.operation="一个值";
  idi.opercode="一个值";
  idi.itemid="一个值";
  itemidinfos.add(idi);
  rsp.itemsidlist=itemidinfos;
  //创建流
  memorystream strem=new memorystream();
  //创建序列化对象
  xmlserializer se=new xmlserializer(typeof(rspitempicset));
  //使用流将文件格式化为xml文件,记录到流中
  se.serialize(stream,rsp);
  stream.position=0;
  //从字节流中读取文件
  streamreader sr=new streamreader(stream);
  string str=sr.readtoend();
  sr.dispose();
  stream.dispose();

 3.对json进行序列化和反序列化

//实例化对象并赋值
message mes=new message(){name="张三",age=14,time=convert.toin32("2019-05-16"),gender=convert.tochar("男")};
//json序列化
    
string strdate=jsonconvert.serializeobject(mes);

//json反序列化

public string student()
{
public string id{get;set;}
public string name{get;set;}
}

string str = {\”id\”:2,\”name\”:\”鲁智深\”,\”age\”:230,\”sex\”:\”男\”};

student str=jsonconvert.deserializeobject<student>(str);

结果:str.id=2;