白芷若惊

博客园 首页 联系 订阅 管理

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;

 

posted on 2019-05-16 11:46  白芷若惊  阅读(405)  评论(0编辑  收藏  举报