我在 .NET 4.5 Windows 应用商店应用程序中使用库存 JSON 序列化器 -
System.Runtime.Serialization.Json.DataContractJsonSerializer
我有一个由 API 提供商提供的类
class A { public DateTime Date {get;set} }
我想通过这样做来隐藏日期字段(注意 -new关键词):
class AEx : A { public new string Date {get;set} }
但我遇到了例外:
类型“AEx”无法使用 DataContractJsonSerializer 进行序列化,因为数据成员“Date”在其类型层次结构中重复。
我明白它的作用..但是我的问题是not HOW可以吗but why?
按理说应该兼容多态这样的编程特性。为什么这个类要忽略它?
您的类基本上包含两个同名的属性。所以如果你尝试反序列化如果某个 JSON 包含该属性名称,则无法知道要设置哪个属性。
同样,当序列化对于该类型的对象,您有两个值需要使用相同的属性名称进行序列化 - 您会怎么做expectJSON 是什么样的?
从根本上来说,具有两个同名属性的类型与普通名称/值对格式的序列化不兼容。 (一种更高级的序列化机制,可以指定哪个属性与哪个声明类相关联,但 JSON 不会这样做。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)