2016-03-09 12 views
0

我有一个对象,我需要序列化并返回到我的JavaScript。我的目标是这样的:JsonConvert PreserveReferencesHandling.None not working

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没有工作,或者我误解了它的用法?

回答

0

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

我想出的解决方案是为我自己的班级制作AssociatedPublisherNonAssociatedPublisher,而不是使用EF的。