Xml序列化和反序列化

今天做了2个例子,关于Xml序列化和反序列化.

操作的对象UserInfo,自定义的一个对象.

UserInfo:

[OptionalField] : 标识可以缺少某一字段.

[XmlElement] : 标识Xml节点

[XmlAttribute] : 标识Xml节点的属性

[XmlIgnore]    : 序列化或反序列化不关联的字段.

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 

    [XmlRoot]
    
public class UserInfo
    {
        [OptionalField]
        List
<User> _List = null;

        
public List<User> UserList
        {
            
get { return _List; }
            
set { _List = value; }
        }

    }


    [Serializable]
    
public class User
    {
        
string id = String.Empty;

        [XmlElement()]
        
public string Id
        {
            
get { return id; }
            
set { id = value; }
        }
        
string parentId = String.Empty;
        [XmlElement()]
        
public string ParentId
        {
            
get { return parentId; }
            
set { parentId = value; }
        }
        
string code = String.Empty;
        [XmlElement()]
        
public string Code
        {
            
get { return code; }
            
set { code = value; }
        }

    }

 

序列化代码:this.List是一个我做的一个数据集合,存放的是User.

 

ContractedBlock.gif ExpandedBlockStart.gif Code
            using (TextWriter tr = new StreamWriter("XMLFile1.xml"))
            {
                UserInfo userinfo 
= new UserInfo();
                userinfo.UserList 
= this.List as List<User>;
                XmlSerializer xmlSerializer 
= new XmlSerializer(typeof(UserInfo));
                xmlSerializer.Serialize(tr, userinfo);               
                tr.Close();
            }

 

反序列化代码:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
            using (TextReader tr = new StreamReader("XMLFile1.xml"))
            {
                UserInfo userinfo 
= new UserInfo();                
                XmlSerializer xmlSerializer 
= new XmlSerializer(typeof(UserInfo));
                userinfo 
= xmlSerializer.Deserialize(tr) as UserInfo;
                List 
= userinfo.UserList;
            }

转载于:https://www.cnblogs.com/chinaicm/archive/2008/08/26/1276463.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值