【背景描述】:在开发软件的过程中,经常需要通过XML序列化一些对象,用于数据的传输与存储

【问题描述】:现在有这样一个问题,有3三个类,Movie,Cinema,SuperCinema。SuperCinema继承自Cinema,具体看代码。

【Code】

public class Movie{public string Id { get; set; }public string Name { get; set; }public DateTime ProduceTime { get; set; }public string DirectorName { get; set; }}

public class Cinema{public string Name { get; set; }public List<Movie> Movies { get; set; }}

public class SuperCinema : Cinema{public new List<string> Movies { get; set; }}

static void Main(string[] args){SuperCinema c1 = new SuperCinema();XmlSerializer serializer = new XmlSerializer(typeof(SuperCinema));Console.Read();}

SuperCinema中隐藏了父类中的成员Movies,更改了数据类型,此时序列化会报这样的错误:

{"类型 System.Collections.Generic.List`1[System.String] 的成员 SuperCinema.Movies 隐藏类型 System.Collections.Generic.List`1[Json序列化与反序列化.Movie] 的基类成员 Cinema.Movies。使用 XmlElementAttribute 或 XmlAttributeAttribute 指定一个新名称。"}

此时如果仅仅在SuperCinema类中,在Movies属性上加上[XmlElement("NewName")]并不起作用。

如:

public class SuperCinema : Cinema{[XmlElement("NewMovie")]public new List<string> Movies { get; set; }}

既然我们需要隐藏父类的Movies属性,那么直接在父类Cinema中使Movies属性不进行序列化就可以了。

如:

public class Cinema{public string Name { get; set; }[XmlIgnore]public List<Movie> Movies { get; set; }}

转载于:https://www.cnblogs.com/fb-boy/p/3473581.html

【.Net基础02】XML序列化问题相关推荐

  1. 开心网外挂开发之 XML序列化于反序列化

    通过昨天的文章我们已经了解了开发一个开心网的外挂所需要的最基本的东本,接下来的工作可以说基本上就上围绕这个基础来进行的,我写这一系列文章主要的目地不仅仅是为了让大家了解怎么开发开心网外挂,最主要的目过 ...

  2. 【Groovy】xml 序列化 ( 使用 MarkupBuilder 生成 xml 数据 | 标签闭包下创建子标签 | 使用 MarkupBuilderHelper 添加 xml 注释 )

    文章目录 一.标签闭包下创建子标签 二.使用 MarkupBuilderHelper 添加 xml 注释 三.完整代码示例 一.标签闭包下创建子标签 在上一篇博客 [Groovy]xml 序列化 ( ...

  3. Dubbo(二):Dubbo 基础配置Xml、注解方式 和 高级特性

    Dubbo的基础配置 Xml方式 注解方式 Dubbo的基础配置使用 启动时检查 超时重连 集群容错 负载均衡配置 结果缓存 服务分组 多版本 只订阅/只注册 异步调用 事件通知 参数回调 本地伪装- ...

  4. 利用.NET的XML序列化解决系统配置问题

    作者:未知  请作者速与本人联系  出自: http://blog.csdn.net/ycl111/ 在Web系统开发中,我们经常需要读取和设置一些系统配置项,常见的例如数据库连接字符串.上传路径等等 ...

  5. c语言xml序列化,C# XML和实体类之间相互转换(序列化和反序列化)

    我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改. using System; using System.Collections.Ge ...

  6. Java/Android基础-02

    Java基础-02 概念 面向对象编程 将某一类事物抽象化,确定如何操作数据然后再考虑如何操作数据.然后再考虑下如何组织数据 特点 属性: 用来描述对象的数据元素称为对象的属性. 方法: 对象的属性进 ...

  7. XML序列化以及新增节点XMLHelper

    介绍利用XMLHelper类实现XML的新建以及反序列化类的操作,XMLHelper见最底部 1.XML新增 document = XmlHelper.CreateXmlDocument(" ...

  8. Java对象XML序列化框架-Simple2.0

    Java对象XML序列化框架-Simple2.0 Simple是一个XML序列化框架,一个Java 版本宽容的序列化框架,能够快速在Java 平台上开发XML.支持通过annotations完全配置化 ...

  9. XML序列化和反序列化(C#)

    主要参考资料: http://www.codeproject.com/Articles/483055/XML-Serialization-and-Deserialization-Part-1 http ...

最新文章

  1. 7-1 查找书籍(20 分)(程序设计天梯赛模拟练习题)
  2. motan源码分析二:使用spi机制进行类加载
  3. 面试官:了解二叉树吗,平衡二叉树,红黑树?
  4. 网络编程项目(聊天室项目)
  5. 为什么天才容易患阅读障碍症_患了慢阻肺为什么容易日渐消瘦?
  6. thinkpadx1mdt 网络启动_二二、MDT 2013 Update 1批量部署-硬件驱动使用、驱动库建立及自动识别...
  7. 网页制作 网页下拉菜单HTML+CSS制作
  8. RouterOS PPTP和L2TP的配置
  9. 给自己立一个flag
  10. 【笔记】win10上,IDEA完全删除,清理注册表
  11. 快手算法岗日常实习面试经验
  12. Background Suppression Network for Weakly-supervised Temporal Action Localization
  13. 【算法】最长公共子序列(LCS)
  14. linux端口查看time_wait,netstat -an查看到大量的TIME_WAIT状态的解决办法
  15. python井字棋_python实现简单井字棋游戏
  16. 计算机组成原理乘法器实验报告,Booth乘法器实验报告
  17. 潜在客户生成,应该如何做?
  18. 长安大学水利计算机专业等级,2016年长安大学计算机类(含计算机科学与技术、软件工程、网络工程等4个专业)专业最低分是多少?...
  19. linux系统修改普通用户密码和破解管理员密码
  20. 快速批量给图片添加水印的方法

热门文章

  1. mvnForum1.2.2在Eclipse中的部署
  2. mysql常用命令操作
  3. 吴杭民:上海的生活成本高过纽约(贪污腐败横行)
  4. Directory Service Maintenance
  5. WCF技术剖析之十一:异步操作在WCF中的应用(上篇)
  6. 浅谈构建 apache 2 虚拟主机[zt]
  7. 关于cast类型转换后无法使用索引的优化
  8. Android 编译系统分析(三)
  9. HBuilder 模拟器连接默认端口
  10. Pytorch自定义Dataset和DataLoader去除不存在和空的数据