新建控制台console项目,添加XmlPersonIXmlSerializable类,和AddressIXmlSerializable类(实现IXmlSerializable)以及AddressIXmlSerializable子类USAddressIXmlSerializable

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization; namespace SupremeConsole
{
#region 测试IXmlSerializable
public class XmlPersonIXmlSerializable
{
/// <summary>
/// 姓名
/// </summary>
public string Name { get; set; } /// <summary>
/// 住址
/// </summary>
public AddressIXmlSerializable HomeAddress = new USAddressIXmlSerializable();//子类的序列化 } public class AddressIXmlSerializable : IXmlSerializable
{
public string Street, PostCode; public XmlSchema GetSchema()
{
return null;
} public void ReadXml(XmlReader reader)
{
reader.ReadStartElement();
Street = reader.ReadElementContentAsString("Street", null);
PostCode = reader.ReadElementContentAsString("PostCode", null);
reader.ReadEndElement();
} public void WriteXml(XmlWriter writer)
{
writer.WriteElementString("Street", Street);
writer.WriteElementString("PostCode", PostCode);
}
} public class USAddressIXmlSerializable : AddressIXmlSerializable
{
public string Neighbor;
}
#endregion
}

主方法代码:

using log4net;
using System;
using System.Data;
using System.Data.SQLite;
using System.Diagnostics;
using System.IO;
using System.IO.Compression;
using System.IO.MemoryMappedFiles;
using System.IO.Pipes;
using System.Linq;
using System.Net;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Serialization;
using System.Reflection;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Runtime.Serialization;
using System.Collections.Generic; namespace SupremeConsole
{
class Program
{
static void Main(string[] args)
{
XmlPersonIXmlSerializable xmlPersonIXmlSerializable = new XmlPersonIXmlSerializable { Name = "", HomeAddress = new AddressIXmlSerializable { Street = "大街三三号", PostCode = "" } };
string s = SerializeManager.Instance.XmlSerialize<XmlPersonIXmlSerializable>(xmlPersonIXmlSerializable);//序列化
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("测试序列化成功。。。");
Console.WriteLine($"测试序列化结果:\r\n{s}");
Console.ReadLine();
}
}
}

运行结果:

最新文章

  1. 滚动变色的文字js特效
  2. xml配置文件的读写
  3. APP架子迁移指南(一)
  4. Jquery.Datatables dom表格定位
  5. inlay检验标准
  6. RH033读书笔记(9)-Lab 10 Understanding the Configuration Tools
  7. http?https?相对协议?
  8. String 转化成java.sql.Date和java.sql.Time
  9. eclipse中svn的各种状态图标详解
  10. 【iOS】OC-UTC日期字符串格式化
  11. Unix shell范例精解 课后题
  12. vue-cli@3.x初体验之前篇-回顾vue-cli@2.x创建项目的流程
  13. CentOS7下swap分区创建(添加),删除以及相关配置
  14. 2017-2018-2 20155309 南皓芯 Exp5 MSF基础应用
  15. win7下一劳永逸地解决触控板禁用的问题
  16. CRM rbac 组件的应用
  17. stl本子
  18. python计算两个数的百分比
  19. 【Redis】命令学习笔记——列表(list)+集合(set)+有序集合(sorted set)(17+15+20个超全字典版)
  20. Cassandra概念学习系列之Cassandra是什么?

热门文章

  1. 纯css无js实现点击事件
  2. HTML 结构标签(div+span)
  3. Android studio module生成jar包,module中引用的第三方库没有被引用,导致java.lang.NoClassDefFoundError错误。
  4. Webpack如何配置sourceMap
  5. 第一册: lesson 129。
  6. spring和springmvc
  7. k8s创建harbor私有镜像仓库
  8. python3接口自动化:绕过验证码登陆
  9. CSP-S2019 游记
  10. CustomHTTPProtocol