`
bluedusk
  • 浏览: 271965 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C#的XML序列化和反序列化3

    博客分类:
  • .Net
阅读更多

要序列化的对象的类:

[Serializable]
public class Person
{
private string name;
public string Name
{
get
{
return name;
}
set
{
name=value;
}
}
public string Sex;
public int Age=31;
public Course[] Courses;

public Person()
{
}
public Person(string Name)
{
name=Name;
Sex="男";
}
}
[Serializable]
public class Course
{
public string Name;
[XmlIgnore]public string Description;
public Course()
{
}
public Course(string name,string description)
{
Name=name;
Description=description;
}
}

进行序列化及反序列化的测试类:

class Test
{
//序列化
public void Serialiaze()
{
Person c=new Person("cyj")
c.Courses=new Course[2];
c.Courses[0]=new Course("英语","交流工具")
c.Courses[1]=new Course("数学","自然科学")

XmlSerializer xs=new XmlSerializer(typeof(Person));
Stream stream = new FileStream("c:\\cyj.xml", FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
xs.Serialize(stream, c);
stream.Close();
}
//反序列化
public void Deserialize()
{
XmlSerializer xs=new XmlSerializer(typeof(Person));
Stream stream = new FileStream("c:\\cyj.xml", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Person p=(Person)xs.Deserialize(stream);
Console.WriteLine(p.Name);
Console.WriteLine(p.Age.ToString());
Console.WriteLine(p.Courses.Length.ToString());
Console.Read();
}
}

格式化后Xml的文档内容为:
<?xml version="1.0"?>
<Person xmlns:xsd=http://www.w3.org/2001/XMLSchema    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance ">
<Sex>男</Sex>
<Age>31</Age>
<Courses>
    <Course>
      <Name>英语</Name>
    </Course>
    <Course>
      <Name>数学</Name>
    </Course>
</Courses>
<Name>cyj</Name>
</Person>

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/21aspnet/archive/2007/03/24/1539682.aspx

分享到:
评论

相关推荐

    C#序列化与反序列化(包括复杂xml对象)

    本文将深入探讨C#中的XML序列化和反序列化技术,包括如何将XML文档解析为对象,以及如何将对象转换回XML文档进行存储。我们将详细讲解三种方法,涵盖从XML节点获取键值对(KV值)到处理对象数组和节点标签组合的反...

    XML序列化与反序列化 实战

    总的来说,这个实战项目提供了XML序列化和反序列化的实用工具,帮助开发者更高效地处理XML数据和C#对象之间的转换。通过理解和使用提供的代码,你可以深入了解XML序列化的工作原理,并将其应用到自己的项目中。

    C# xml序列化和反序列化

    在C#编程中,XML序列化和反序列化是一项重要的技术,它允许我们将对象的状态转换为XML格式的数据,以及将XML数据恢复为等效的对象。这在数据存储、网络传输和配置文件等方面都有广泛的应用。以下是对这个主题的详细...

    C#JSon XML序列化与反序列化工具

    总结来说,理解和掌握C#中的JSON和XML序列化与反序列化是每个.NET开发者必备的技能。自制的解析工具不仅提升了工作效率,也使得数据处理更加灵活和便捷。无论是`System.Text.Json`还是Newtonsoft.Json,或是`System....

    C# 实现序列化,反序列化XML文件 各种类型 万能

    在C#中,我们可以使用`System.Xml.Serialization`命名空间中的`XmlSerializer`类来实现XML序列化。序列化过程通常包括以下步骤: 1. 定义要序列化的类:在类中添加`[Serializable]`属性或者使用`[XmlRoot]`、`...

    C#中Font和Color的Xml序列化

    在本文中,我们将探讨如何通过自定义方式实现Font和Color在XML序列化中的应用。 首先,让我们了解什么是Font和Color。Font对象在C#中代表了文本的外观,包括字体名称、大小、样式(如粗体、斜体)等属性。而Color...

    C# 各种序列化和反序列化

    在C#中,我们可以使用System.Xml.Serialization命名空间中的XmlSerializer类来实现XML序列化和反序列化。通过创建一个XmlSerializer实例,指定要序列化的类型,然后调用其Serialize方法,即可将对象转换为XML字符串...

    C#序列化和反序列化案例.rar

    最常用的序列化类型包括XML序列化(XmlSerializer)、JSON序列化(JavaScriptSerializer或Newtonsoft.Json库)和二进制序列化(BinaryFormatter)。在这个案例中,可能是通过BinaryFormatter或XmlSerializer将对象的...

    c#操作xml和序列化

    3. **XML序列化和反序列化**: C#提供了XmlSerializer类来实现对象到XML和XML到对象的转换。这在保存和加载对象状态时非常有用。 ```csharp [Serializable] public class MyObject { public string Name { get;...

    Xml反序列化

    1. **创建一个XML序列化类**:首先,我们需要定义一个类,该类的属性与XML文件中的元素相对应。例如,如果XML文件包含电源配置信息,可能有一个类名为`PowerConfig`,其中包含如`Voltage`、`Current`和`Frequency`等...

    xml序列化和反序列化 c#

    XML序列化和反序列化是C#编程中处理数据存储和传输的重要技术。XML(Extensible Markup Language)是一种用于标记数据的语言,具有良好的可读性和跨平台性,使其成为网络数据交换的理想选择。C#提供了内置的支持来...

    XmlDemoTranfer Xml序列化与反序列化

    `XmlSerializer`是C#中用于处理XML序列化和反序列化的关键类。要序列化一个对象,你需要创建一个`XmlSerializer`实例,指定要序列化的类型,然后调用`Serialize`方法,将对象写入一个文本流或文件。反序列化则通过...

    C#序列化和反序列化XML-读取word

    本篇将深入探讨如何使用C#进行XML序列化和反序列化,并且特别关注如何读取Word文档中的XML内容。 XML序列化是将对象的属性和字段转换为XML文档的过程,而反序列化则是相反的过程,即将XML数据转换回对象。这对于...

    C#中以PLCOpen为例子的XML序列化,反序列化的代码

    总的来说,XML序列化和反序列化是C#中处理数据交换和持久化的重要工具。它们简化了与XML格式的数据交互,并能方便地应用到PLCOpen或其他任何基于XML的规范或标准中。通过理解并熟练掌握这一技术,开发者可以更高效地...

    C#序列化和反序列化

    C#提供了多种序列化方法,其中最常见的包括BinaryFormatter、SoapFormatter和XML序列化。接下来我们将详细探讨这三种方法。 1. **BinaryFormatter**: BinaryFormatter是.NET框架中最基本的序列化工具,它将对象...

    XML序列化与反序列化整理文档(12套)

    XML(eXtensible Markup ...通过理解和熟练掌握XML序列化与反序列化,开发者可以有效地在不同的系统和组件之间传递数据,从而提升软件的灵活性和互操作性。所提供的文档和代码实例是深入学习和实践这一技术的好资源。

    C#对象序列化与反序列化

    XML序列化不会保存完整的类型名称或程序集信息,这使得XML数据更具开放性和互操作性。 ##### (3) 使用特性对序列化的控制 - **`[Serializable]`**:表示该类型支持序列化。 - **`[NonSerialized]`**:表示该字段不...

    c#对象序列化与反序列化实例

    C#提供了`System.Xml.Serialization.XmlSerializer`类来处理XML序列化和反序列化。 ```csharp [XmlRoot("Person")] public class Person { [XmlElement("Name")] public string Name { get; set; } [XmlElement...

    C#和Java的序列化反序列化

    C#的XML序列化允许我们控制哪些字段和属性参与序列化,可以通过添加`[XmlElement]`、`[XmlAttribute]`等特性来指定。此外,C#还提供了JSON序列化库如Newtonsoft.Json(Json.NET),它在Web应用中广泛应用,支持更...

    c# 利用messagepack对类/数据进行序列化/反序列化示例

    MessagePack是一种高效的二进制序列化格式,它可以在C#中用于序列化和反序列化对象。与其他序列化格式相比,如JSON和XML,MessagePack的编码和解码速度更快,生成的二进制数据更小。在C#中使用MessagePack进行序列化...

Global site tag (gtag.js) - Google Analytics