在此之前,我想谈谈序列化的几件事:
序列化是将对象转换为易于运输的形式的过程。 例如,您可以序列化对象并使用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