JsonConvert PreserveReferencesHandling.None not Working



>我有一个对象需要序列化并返回到我的javascript。我的对象是这样的:

public class Book
{
    public int Id { get; set; }
    public string Name { get; set; }
    public List<Publisher> AssociatedPublisher { get; set; }
    public List<Publisher> NonAssociatedPublisher { get; set; }
}

如果我用一个填充AssociatedPublisherNonAssociatePublisher,并且在列表中使用相同的Publisher,那么我会这样做

var b = JsonConvert.SerializeObject(book, new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.None });

当我检查var b它总是将NonAssociatedPublisher序列化为:

NonAssociatedPublisher
     |
     |-----[0]
            |
            |----$ref: "3"

我想要的是完整的对象,而不仅仅是引用。似乎 PreserveReferencesHandling.None 不起作用,或者我误解了它的用法?

抱歉我必须回答我自己的问题。问题是AssociatedPublisherNonAssociatedPublisher都来自 EF 并且它们被标记 (IsReference=true)。

我想出的解决方案是为AssociatedPublisherNonAssociatedPublisher创建自己的类,而不是使用 EF 中的类。

相关内容

  • 没有找到相关文章

最新更新