【发布时间】:2015-03-17 01:57:18
【问题描述】:
我有以下设置:
public abstract class A
{
[JsonIgnore]
public abstract Type Foo { get; }
}
public abstract class B : A
{
public override Type Foo { get { return typeof(D); } }
}
public class C : B
{
}
public abstract class D
{
}
我的问题是,当我通过以下方式序列化 C 的实例时:
JsonConvert.SerializeObject(instanceOfC, serializationSettings));
生成的 JSON 包含属性 Foo 的条目。这是预期的结果吗?
我的serializationSettings如下:
JsonSerializerSettings _serializationSettings = new JsonSerializerSettings
{
PreserveReferencesHandling = PreserveReferencesHandling.Objects,
ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
TypeNameHandling = TypeNameHandling.All,
ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor
};
编辑:使用 Json.NET 6.0.0 和 .NET 4.5。
【问题讨论】:
-
我无法使用您提供的代码重现此问题。见dotnetfiddle.net/aEUy3p
标签: json.net