我有一个对象需要序列化并返回到我的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; }
}
如果我将AssociatedPublisher
和NonAssociatePublisher
填入一个,并且列表中的Publisher
相同,那么我就
var b = JsonConvert.SerializeObject(book, new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.None });
当我检查var b
时,它始终将NonAssociatedPublisher
序列化为:
NonAssociatedPublisher
|
|-----[0]
|
|----$ref: "3"
我想要的是完整的对象,而不仅仅是参考。似乎PreserveReferencesHandling.None不起作用或我误解了它的使用?
答案 0 :(得分:1)
对不起,我必须回答我自己的问题。问题是AssociatedPublisher
和NonAssociatedPublisher
都来自EF并且标记了它们(IsReference = true)。
我提出的解决方案是为AssociatedPublisher
和NonAssociatedPublisher
创建自己的课程,而不是使用EF中的课程。