如何将参数传递给构造函数反序列化json

在使用Newtonsoft.Json反序列化对象时,将一些父实例传递给构造函数时遇到一个小问题。

我们假设我有以下课程

 public class A { public string Str1 { get; set; } public IList Bs { get; set; } } public class B { public B(A a) { // a should not be null! Console.WriteLine(a.Str) } } 

现在我对这个对象a serailze而不是反序列化:

 A a = new A() a.Bs = new List() a.Bs.Add(new B(a)); a.Bs.Add(new B(a)); a.Bs.Add(new B(a)); var json = JsonConvert.SerializeObject(a); // Here i need to call the constructor of B when creating new instances var newA = JsonConvert.DeserializeObject(json); 

问题是,当反序列化对象时, null将被传递给B的构造函数。 有没有人以前解决过这个问题?

非常感谢你!