惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
Recent Commits to openclaw:main
Recent Commits to openclaw:main
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
罗磊的独立博客
V
Visual Studio Blog
爱范儿
爱范儿
H
Help Net Security
J
Java Code Geeks
I
InfoQ
Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Recorded Future
Recorded Future
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
GbyAI
GbyAI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
Scott Helme
Scott Helme
S
SegmentFault 最新的问题
S
Securelist
L
LINUX DO - 热门话题
Cyberwarzone
Cyberwarzone
C
Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss
博客园_首页
B
Blog
F
Fortinet All Blogs
AWS News Blog
AWS News Blog
V
Vulnerabilities – Threatpost
S
Secure Thoughts
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Forbes - Security
Forbes - Security
S
Security @ Cisco Blogs
T
Threat Research - Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Schneier on Security
Project Zero
Project Zero
Martin Fowler
Martin Fowler
C
Cybersecurity and Infrastructure Security Agency CISA
N
Netflix TechBlog - Medium
N
News and Events Feed by Topic

博客园 - jerreychen

常用的JavaScript验证正则表达式 用CSS设置打印换页 使用Form认证实现用户登录 (LoginView的使用) 向容器(PlaceHolder)中动态添加多个用户控件(UserControl) C#.Net中WinForm采用Active Directory进行身份认证 Windows XP 如何设置系统自动关机任务 - jerreychen DataList嵌套GridView实现文章分类列表显示(2) visual studio 2008 sp1中如何让WebBrowser控件可编辑 - jerreychen SQLite 数据库初学 学习笔记 - jerreychen - 博客园 如何将.xsd文件自动生成对象 ASP.NET页面事件:顺序与回传详解 读取自定义的config文件 - jerreychen - 博客园 Umbraco 设置Document Types 的默认值 格式化数据 Net支持gzip 压缩格式 压缩与解压 .net 下,日期的格式化 太久太久没来了,久违了-博客园 showModelDialog 关闭后改变GridView某个单元格的值
.net 序列化数据对象
jerreychen · 2008-03-06 · via 博客园 - jerreychen

.net 序列化数据对象到XML,XML反序列化为对象

呵呵... 直接放代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml;
using System.Xml.Serialization;

namespace ConsoleApplication2
{
    
public class SimpleSerializer
    
{
        
/// <summary>
        
/// 序列化对象
        
/// </summary>
        
/// <typeparam name="T">对象类型</typeparam>
        
/// <param name="t">对象</param>
        
/// <returns></returns>

        public static string Serialize<T>(T t)
        
{
            
using (StringWriter sw = new StringWriter())
            
{
                XmlSerializer xz 
= new XmlSerializer(t.GetType());
                xz.Serialize(sw, t);
                
return sw.ToString();
            }

        }


        
/// <summary>
        
/// 反序列化为对象
        
/// </summary>
        
/// <param name="type">对象类型</param>
        
/// <param name="s">对象序列化后的Xml字符串</param>
        
/// <returns></returns>

        public static object Deserialize(Type type, string s)
        
{
            
using (StringReader sr = new StringReader(s))
            
{
                XmlSerializer xz 
= new XmlSerializer(type);
                
return xz.Deserialize(sr);
            }

        }

    }

}

申明数据对象,在这里大家是不是和我一样,数据一旦多了,就要老是写get,set很烦
有个简单的方法可以轻松实现,

首先我们申明 private 类型,然后在成员上单击鼠标右键->Refactor->encapsulate  field ... 然后系统会自动生成相应的get,set方法

    [Serializable]
    
public class StockTicker
    
{
        
private string _instrumentType;
        [XmlAttribute]
        
public string InstrumentType
        
{
            
get return _instrumentType; }
            
set { _instrumentType = value; }
        }

        
private string _userSymbol;
        [XmlAttribute]
        
public string UserSymbol
        
{
            
get return _userSymbol; }
            
set { _userSymbol = value; }
        }

        
private int _seq;
        [XmlAttribute]
        
public int Seq
        
{
            
get return _seq; }
            
set { _seq = value; }
        }

        
private int _msgType;
        [XmlAttribute]
        
public int MsgType
        
{
            
get return _msgType; }
            
set { _msgType = value; }
        }

        
private int _bidSize;
        [XmlAttribute]
        
public int BidSize
        
{
            
get return _bidSize; }
            
set { _bidSize = value; }
        }

        
private int _askSize;
        [XmlAttribute]
        
public int AskSize
        
{
            
get return _askSize; }
            
set { _askSize = value; }
        }

    }