用C#怎么写一个自定义的序列化和反序列化的类
2个回答
展开全部
有个类定义为:
C#复制代码
1. [Serializable]//指明该类可以被序列化
2. public class webinfo
3. {
4. public string userName;
5. public string webName;
6. public string webUrl;
7. }
那么通过序列化我们可以将其序列化为:
XML/HTML复制代码
1. <?xml version="1.0"?>
2. <webinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3. <userName>阿会楠</userName>
4. <webName>搜索吧</webName>
5. <webUrl>http://www.sosuo8.com</webUrl>
6. </webinfo>
主要的代码如下:
C#复制代码
1. webinfo info = new webinfo();
2. info.userName = "阿会楠";
3. info.webName = "搜索吧";
4. info.webUrl = "http://www.sosuo8.com";
5.
6. //用webinfo这个类造一个XmlSerializer
7. XmlSerializer ser = new XmlSerializer(typeof(webinfo));
8.
9. //xml保存路径,序列化成功后可以通过查看该文件看到序列化后结果
10. string path = Server.MapPath("webinfo.xml");
11.
12. try
13. {
14. //Stream用于提供字节序列的一般视图,这里将在根目录下建立一个xml文件
15. Stream file = new FileStream(path, FileMode.Create, FileAccess.Write);
16.
17. //把Stream对象和info一起传入,序列化出一个XML文件,如果没这一步,建立的xml内容为空
18. ser.Serialize(file, info);
19.
20. //释放资源
21. file.Close();
22. file.Dispose();
23.
24. Response.Write("序列化成功");
25.
26. }
27. catch (Exception ex)
28. {
29. Response.Write(ex.Message);
30. }
31. finally
32. {
33.
34. }
反序列化就是读取xml文件并将其值自动匹配给类中的公有属性或方法或字段,也就是上面的逆操作。
C#复制代码
1. webinfo info = new webinfo();
2.
3. //用webinfo这个类造一个XmlSerializer
4. XmlSerializer ser = new XmlSerializer(typeof(webinfo));
5.
6. string path = Server.MapPath("webinfo.xml");
7.
8. //Stream用于提供字节序列的一般视图,这里将打开一个xml文件
9. Stream file = new FileStream(path, FileMode.Open, FileAccess.Read);
10.
11. //把字节序列(stream)反序列化
12. info = (webinfo)ser.Deserialize(file);
13.
14. Response.Write("站长:" + info.userName + "<br>");
15. Response.Write("站名:" + info.webName + "<br>");
16. Response.Write("域名:" + info.webUrl);
C#复制代码
1. [Serializable]//指明该类可以被序列化
2. public class webinfo
3. {
4. public string userName;
5. public string webName;
6. public string webUrl;
7. }
那么通过序列化我们可以将其序列化为:
XML/HTML复制代码
1. <?xml version="1.0"?>
2. <webinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3. <userName>阿会楠</userName>
4. <webName>搜索吧</webName>
5. <webUrl>http://www.sosuo8.com</webUrl>
6. </webinfo>
主要的代码如下:
C#复制代码
1. webinfo info = new webinfo();
2. info.userName = "阿会楠";
3. info.webName = "搜索吧";
4. info.webUrl = "http://www.sosuo8.com";
5.
6. //用webinfo这个类造一个XmlSerializer
7. XmlSerializer ser = new XmlSerializer(typeof(webinfo));
8.
9. //xml保存路径,序列化成功后可以通过查看该文件看到序列化后结果
10. string path = Server.MapPath("webinfo.xml");
11.
12. try
13. {
14. //Stream用于提供字节序列的一般视图,这里将在根目录下建立一个xml文件
15. Stream file = new FileStream(path, FileMode.Create, FileAccess.Write);
16.
17. //把Stream对象和info一起传入,序列化出一个XML文件,如果没这一步,建立的xml内容为空
18. ser.Serialize(file, info);
19.
20. //释放资源
21. file.Close();
22. file.Dispose();
23.
24. Response.Write("序列化成功");
25.
26. }
27. catch (Exception ex)
28. {
29. Response.Write(ex.Message);
30. }
31. finally
32. {
33.
34. }
反序列化就是读取xml文件并将其值自动匹配给类中的公有属性或方法或字段,也就是上面的逆操作。
C#复制代码
1. webinfo info = new webinfo();
2.
3. //用webinfo这个类造一个XmlSerializer
4. XmlSerializer ser = new XmlSerializer(typeof(webinfo));
5.
6. string path = Server.MapPath("webinfo.xml");
7.
8. //Stream用于提供字节序列的一般视图,这里将打开一个xml文件
9. Stream file = new FileStream(path, FileMode.Open, FileAccess.Read);
10.
11. //把字节序列(stream)反序列化
12. info = (webinfo)ser.Deserialize(file);
13.
14. Response.Write("站长:" + info.userName + "<br>");
15. Response.Write("站名:" + info.webName + "<br>");
16. Response.Write("域名:" + info.webUrl);
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询