- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章探讨:使用XMLSerialize 序列化与反序列化由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
概念:XML序列化是将公共字段和属性转化为序列格式(这里指XML),以便存储或传输的过程。反序列化则是从XML中重新创建原始状态的对象. 。
复制代码 代码如下
class SerializeDemo { static void Main() { EmployeeCollection employeeCollection = new EmployeeCollection() { Employees = Employeer.Employees() }; XmlSerializer serialize = new XmlSerializer(typeof(EmployeeCollection)); string filePath = @"E:\PProject\Test\Employee.xml"; SerializeEmployee(serialize, filePath, employeeCollection); DeserializeEmployee(serialize, filePath); } static void SerializeEmployee(XmlSerializer serialize, string filePath, EmployeeCollection employeeCollection) { using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write)) { serialize.Serialize(fs, employeeCollection); } } static void DeserializeEmployee(XmlSerializer serialize,string filePath) { using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { EmployeeCollection collection = (EmployeeCollection)serialize.Deserialize(fs); collection.Employees.ForEach(e => Console.WriteLine("Name:{0},Gender:{1},Age:{2},Education:{3}", e.userName, e.gender, e.age, e.education)); } } } [Serializable] public class EmployeeCollection { public List<Employeer> Employees { get; set; } } [Serializable] public class Employeer { public string userId { get; set; } public string userName { get; set; } public string gender { get; set; } public int age { get; set; } public List<WorkExperience> workExperience { get; set; } public string education { get; set; } public static List<Employeer> Employees() { return new List<Employeer>() { new Employeer() { userId = "0001", userName = "guoHu", gender="Man", age=25,education="underGraduate", workExperience = WorkExperience.GetWorkExperience("0001") } }; } } [Serializable] public class WorkExperience { public string userId { get; set; } public string companyName { get; set; } public string seniority { get; set; } public static List<WorkExperience> GetWorkExperience(string userId) { List<WorkExperience> workExperience = new List<WorkExperience>(); Unity unity = Unity.GetInstance(); DataTable table = new DataTable(); unity.GetTable(out table); var experiences = (from experience in table.AsEnumerable() where experience.Field<string>("UserId") == userId select new { companyName = experience.Field<string>("CompanyName"), seniority = experience.Field<string>("Seniority") }).ToList(); experiences.ForEach(e => workExperience.Add(new WorkExperience() { companyName = e.companyName, seniority = e.seniority })); return workExperience; } } public class Unity { public static DataTable tables = new DataTable(); public static DataRow dr; public static DataColumn dc = new DataColumn(); public static object objLock = new object(); public static Unity unityInstance; private Unity() { } public static Unity GetInstance() { if (unityInstance == null) { lock (objLock) { if (unityInstance == null) { unityInstance = new Unity(); } } } return unityInstance; } public void GetTable(out DataTable dt) { unityInstance.CreateTable(); dr = tables.NewRow(); dr["UserId"] = "0001"; dr["CompanyName"] = "WireSoft"; dr["Seniority"] = "2012.02-2012.05"; tables.Rows.Add(dr); dr = tables.NewRow(); dr["UserId"] = "0001"; dr["CompanyName"] = "Jin Xun"; dr["Seniority"] = "2009.07-2011.02"; tables.Rows.Add(dr); dr = tables.NewRow(); dr["UserId"] = "0002"; dr["CompanyName"] = "Hua Wei"; dr["Seniority"] = "2011.07-"; tables.Rows.Add(dr); dt = tables.Copy(); } public void CreateTable() { dc = new DataColumn("UserId", System.Type.GetType("System.String")); tables.Columns.Add(dc); dc = new DataColumn("companyName", System.Type.GetType("System.String")); tables.Columns.Add(dc); dc = new DataColumn("seniority", System.Type.GetType("System.String")); tables.Columns.Add(dc); } } 。
最后此篇关于探讨:使用XMLSerialize 序列化与反序列化的文章就讲到这里了,如果你想了解更多关于探讨:使用XMLSerialize 序列化与反序列化的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
在我的 Visual Studio 2010 项目中,我使用以下 Post-Build 事件命令行使用 sgen 创建 XmlSerializers.dll。 构建后事件: "$(ProgramFil
我用 XMLSerializer 类做了一些事情。像大多数初学者一样,我在应用程序启动时遇到性能问题。我阅读了很多博客、文章,最后使用了 SGEN 工具。现在性能看起来还不错,但我还有一些不清楚的地方
过去 2 天我一直被这个问题困扰,但仍然没有解决,我正在寻求帮助。 我的 Listbox根据在 Combobox 中选择的项目,获取添加到其中的生成项目.当我点击按钮时 Create出现一个带有 We
我正在尝试解决如何生成一些 Xml,它使用 XmlSerializer 的一组类中的前缀不仅仅是微不足道的使用。我还希望能够读取相同的 Xml(这相当简单,但随着我使用更复杂的属性似乎消失了。 具体用
XmlSerializer 很难(= 不)反序列化包含表情符号字符的内容,例如 ��。我读过这样的字符在 XML 标准中实际上是非法的;但是,如果我想忠实地表示包含表情符号的聊天对话,则需要它们。如何
我将 XmlSerializer 用于 WCF 服务(就我的服务而言,这是有原因的)。但是最近我遇到了这个问题:我找不到一种简单的方法来使引用类型属性成为必需的,即使其在 XSD 中的定义如下所示:
假设您有两个类,一个继承另一个类,并且子类需要使用 XmlSerializer 进行序列化/反序列化。但是,父级包含一个不可序列化的成员,例如字典。 public class Parent {
我正在尝试使用 XmlSerializer 解析具有如下所示元素的 XML。 amount 元素下有相当多的货币类型,我想将它们反序列化为一个对象集合,这些对象具有保存货币类型的字符串属性和保存金额的
我正在用 Javascript 生成 KML 文档,并尝试使用 XMLSerializer生成 XML 文件,但它生成所有小写标签,即使我在 DOM 中以大写形式创建标签。 是 DOM 破坏了大小写还
我有一小段代码可以将 XML 解析为 JSON。它工作得很好,直到我引入 XMLSerializer 来获取 JSON。 public static String convertXMLFileToSt
假设您有两个类,一个继承另一个,子类需要使用 XmlSerializer 进行序列化/反序列化。但是,父级包含一个不可序列化的成员,比如字典。 public class Parent { pu
我正在尝试使用 XmlSerializer 解析具有如下所示元素的 XML。 amount 元素下有相当多的货币类型,我想将它们反序列化为一个对象集合,这些对象具有保存货币类型的字符串属性和保存金额的
我正在尝试将继承属性的所有成员序列化 (XmlSerializer) 作为特性。 两个类: public class Tree { public Point Location { get; s
我在使用 XmlSerializer 时遇到了修剪字符串的问题, 当使用 XmlReader 时。 IgnoreWhitespace 选项显示无效,元素字符串仍包含\n 和空格。 有什么方法可以“即时
我有以下扩展方法来序列化我的类.... public static string SerializeToXml(this object obj) {
我正在尝试反序列化以下 XML(摘录): Waking The Demon Bullet For My Valentine false B
我在使用 .NET 中的 XmlSerializer 时遇到了一些问题。 这里我有一个我刚刚建立的小例子。 (也可用 @ gist https://gist.github.com/2d84be9041
我从 DTD(通过 XSD 和 xsd.exe)为我的 C# 项目创建了类,因此我可以轻松地将它们反序列化为代码中的模型类。 我大致是这样的: XmlReaderSettings readerSett
我使用 XSD.EXE 将 XSD 转换为对象。这很好用,我可以很好地使用 XMLSerializer 反序列化,除了作为数组生成的子元素不会填充。 private SubElements[]
对不起我的英语。我有 XmlSerializer 的奇怪之处。这是我的代码 [Serializable] public class Radio { public bool hasSubWoof
我是一名优秀的程序员,十分优秀!