最近,为了将一个窗口内所有控件的值保存到一个XML文件中,得研究一个如何将一个类的值全部保存到一个XML文件中的例子。
于是google
http://msdn.microsoft.com/en-us/4kaaezfd(v=vs.90)
得到了这个地址,非常好,详细地给出了读写简单类的方法。
可惜,在进行复杂类的写入的时候,就是一个类内有另外一个的时候,出问题了,于是继续g
得到了 http://blog.csdn.net/menglin2010/article/details/7165553
这个例子。非常好,但是没有关于读的内容,于是,对微软的例子进行了一定的修改之后。内容如下。
学生类 student.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ConsoleApplication1;
using System.Xml;
using System.Xml.Serialization;
namespace ConsoleApplication1
{
public class student
{
//学生名字
private string _name;
[XmlElement]
public string name
{
get { return _name; }
set { _name = value; }
}
//学生年龄
private string _age = "";
[XmlElement]
public string age
{
get { return _age; }
set { _age = value; }
}
}
}
写出XML文件
using System;
using System.Collections.Generic;
using ConsoleApplication1;
using System.Xml;
using System.Xml.Serialization;
namespace ConsoleApplication1
{
[Serializable()]
[XmlRoot]
public class Book
{
public string title;
public int page;
public student sname;
public Book()
{
}
private static void Main()
{
Book introToVCS = new Book();
introToVCS.title = "Intro to Visual CSharp";
introToVCS.page = 26;
introToVCS.sname = new student();
introToVCS.sname.name = "xixi";
introToVCS.sname.age = "15";
System.Xml.Serialization.XmlSerializer writer =
new System.Xml.Serialization.XmlSerializer(
introToVCS.GetType());
System.IO.StreamWriter file =
new System.IO.StreamWriter("c:\\IntroToVCS.xml");
writer.Serialize(file, introToVCS);
file.Close();
}
}
}
读入XML文件
using System;
//http://msdn.microsoft.com/en-us/4kaaezfd(v=vs.90)
using ConsoleApplication1;
public class Book
{
public string title;
public int page;
public student sname;
public Book()
{
}
static void Main()
{
Book introToVCS = new Book();
System.Xml.Serialization.XmlSerializer reader = new
System.Xml.Serialization.XmlSerializer(introToVCS.GetType());
// Read the XML file.
System.IO.StreamReader file =
new System.IO.StreamReader("c:\\IntroToVCS.xml");
// Deserialize the content of the file into a Book object.
introToVCS = (Book)reader.Deserialize(file);
System.Windows.Forms.MessageBox.Show(introToVCS.title, "Book Title");
System.Windows.Forms.MessageBox.Show(System.Convert.ToString(introToVCS.page), "Book PAGES");
System.Windows.Forms.MessageBox.Show(System.Convert.ToString(introToVCS.sname.name), "NAME");
}
}
分享到:
相关推荐
`XmlDocument`是.NET Framework提供的一个类,它允许我们加载XML文档并对其进行读取和修改。以下是一个简单的示例: ```csharp using System.Xml; // 加载XML文件 XmlDocument xmlDoc = new XmlDocument(); xmlDoc...
这类技术主要用于将复杂的结构化数据转换成二进制格式,以便于高效地存储到磁盘或在网络上传输。以下是对"结构体序列化读写二进制文件类"这一主题的详细解释。 首先,结构体(Struct)是C/C++编程语言中的一个基本...
JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛用于数据交换的格式,尤其在Web服务和应用程序之间。它们都提供了结构化的数据表示方式,但各有其特点和适用场景。 JSON是一种轻...
总结来说,XMLSerializer类和Json.NET库提供了在XML和JSON之间转换的强大功能。在.NET开发中,通过熟练掌握这些工具,可以灵活地处理不同数据格式之间的交互,满足各种项目需求。不过,转换时需注意数据格式的差异,...
JSON轻量级,易于人读和机器解析,但在表示复杂结构时不如XML灵活。 以上内容只是XML高级编程的一部分,实践中还有更多主题,如XML签名、XML加密、SOAP(Simple Object Access Protocol)以及XML在网络通信、数据库...
通过这个压缩包,我们可以学习到C#对XML的各种操作技巧,包括读取、写入、解析、修改和序列化等。 首先,让我们了解C#中处理XML的基础概念。XML文档由元素、属性、文本和注释等组成,而C#提供了System.Xml命名空间...
Log.d("XMLSerialization", xmlString); } catch (JsonProcessingException e) { e.printStackTrace(); } ``` 这将输出一个类似这样的XML字符串: ```xml <?xml version="1.0" encoding="UTF-8"?> <name>...
- Protobuf:Google开发的二进制序列化格式,效率高,但不如XML和JSON易读。 总之,Xml序列化器是编程中的一种重要工具,它简化了对象与XML之间的转换,方便数据交换、存储和网络通信。理解并熟练掌握Xml序列化,...
在这个“游戏的存档与读档.zip”压缩包中,我们可能找到了与Unity3D游戏开发相关的素材、软件以及工程文件,它们详细讲解了如何在Unity3D环境中实现存档和读档功能。 Unity3D是一款广泛使用的跨平台游戏引擎,支持...
在VB.NET中,可以使用内置的System.Web.Script.Serialization命名空间中的JavaScriptSerializer类来解析Json。以下是一个简单的步骤: 1. 引入命名空间: ```vb Imports System.Web.Script.Serialization ``` 2...
DB2中还特别提到了LO块和XML锁的概念,它们分别用于优化存储过程和处理XML数据时的锁定需求。全局临时表和全局事务的锁定需求也是DB2考虑的重点。 通过了解和掌握DB2 z/OS平台下的资源序列化和并发控制,数据库管理...
本压缩包"flex json解析包(corelib.swc)"是针对Flex应用程序的一个核心库,提供了对JSON的解析和序列化功能。 首先,我们要了解什么是SWC文件。SWC是Adobe Flex Compiler生成的库文件格式,它包含了ActionScript...
通过结合Kotlinx.serialization的强大功能和YAML的易读性,kaml使得Kotlin项目中的数据管理变得更加高效和便捷。 总之,kaml是Kotlin开发者处理YAML数据的得力助手,它简化了序列化和反序列化的流程,提升了代码的...
要进行XML到JSON的转换,我们可以使用C#的System.Xml.Serialization命名空间中的类。首先,我们需要将XML字符串解析为一个XmlDocument对象,然后使用JsonConvert类的SerializeXmlNode方法将这个XML节点转换为JSON...
此外,对于更复杂的转换,如XML与JSON之间的转换,可以使用System.Xml.Serialization或Newtonsoft.Json库。 2. **资源管理**: C#提供了自动垃圾回收机制来管理内存,但开发者仍然需要关注资源的释放,如数据库...
- **版本信息**:对于更新和维护,JAVADOC会提供关于库版本的信息,有助于追踪变化和兼容性问题。 **4. 压缩包文件内容详解:** - **stylesheet.css**:样式表文件,用于格式化JAVADOC文档的HTML输出,使其更易读。...
在C#中,我们可以使用`System.Xml.Serialization`命名空间中的`XmlSerializer`类来实现这一过程。以下是一个简单的例子: ```csharp public class People { [XmlAttribute("NAME")] public string Name { set; ...
在.NET中,可以使用`System.Xml.Serialization.XmlSerializer`类进行XML序列化和反序列化。Java中,可以使用`javax.xml.bind.JAXB`或`org.xmlpull.v1.XmlPullParser`来实现相同的目标。XML序列化通常会产生更冗长的...
4. **XmlSerializer**: 这个类将对象转换为XML格式,易于阅读和理解,同时也支持跨平台。如果需要与Web服务交互或保存人类可读的数据,XmlSerializer是很好的选择。 5. **DataContractSerializer和JsonSerializer**...
- `BinaryFormatter` 类在`System.Runtime.Serialization.Formatters.Binary`命名空间中,用于创建二进制格式的序列化数据,这种格式更紧凑,但不如XML易读。 - `DataContractSerializer` 和 `...