如何创建可以使用XML序列化进行序列化的类:

在此之前,我想谈谈序列化的几件事:

序列化是将对象转换为易于运输的形式的过程。 例如,您可以序列化对象并使用HTTP在客户端和服务器之间通过Internet传输它。 另一方面,反序列化从流中重建对象。

XML序列化仅将对象的公共字段和属性值序列化为XML流。 XML序列化不包含类型信息。 例如,如果库名称空间中存在Book对象,则不能保证将其反序列化为相同类型的对象。

注意XML序列化不会转换方法,索引器,私有字段或只读属性(只读集合除外)。 要序列化所有对象的公共和私有字段和属性,请使用BinaryFormatter而不是XML序列化。 序列化过程中将跳过私有成员或受保护成员。

如何创建可以使用XML序列化进行序列化的类:

-------------------------------------------------- -------------------------------------------------- ---

若要创建可以通过使用XML序列化进行序列化的类,您必须执行以下任务:

1)指定班级为公开。

2)指定必须序列化为public的所有成员。

3)创建一个无参数的构造函数。

与通过标准序列化处理的类不同,类不必具有要使用XML序列化处理的Serializable属性。 如果有私有成员或受保护成员,则在序列化期间将跳过它们。

例:

公共类用户

{

public Int UserId;

公共字符串分支;

公用字符串UserName;

公共用户

{

}

}

使用样本值序列化此类的实例将创建以下XML(为便于阅读已对其进行了稍微简化):

<?xml version =“ 1.0”吗?>

<用户>

<UserId> 100 </ UserId>

<Branch>发展</ Branch>

<UserName>“艾哈迈德” </ UserName>

</ User>

如何控制XML序列化:

在本文中,我将展示几个这样的属性。

例如,请考虑对序列化的XML文档进行以下三个更改所需的属性:

将User元素名称更改为DeptUser,使UserId成为DeptUser的属性,而不是单独的元素。

不要在序列化文档中包括分支。

[XmlRoot(“ DeptUser”)]

公共类用户

{

[XmlAttribute]

public Int UserId;

[XmlIgnore]

公共字符串分支;

公用字符串UserName;

公共用户

{

}

}

使用样本值序列化此类的实例将创建以下XML(为便于阅读已对其进行了略微简化):

<?xml version =“ 1.0”吗?>

<DeptUser UserId =“ 100”>

<UserName>“艾哈迈德” </ UserName>

</ DeptUser>

摘要:

1)要创建可以序列化的类,请将该类和所有成员指定为public,然后创建无参数构造函数。

2)我们可以通过使用属性来控制XML序列化。 属性可以更改元素的名称,将成员序列化为属性而不是元素,并将成员从序列化中排除。

谢谢和Regs

巴拉斯·雷迪VasiReddy

From: https://bytes.com/topic/net/insights/672965-how-create-classes-can-serialized-using-xml-serialization

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值