This example code is a simplified version of my project, the _lockObject is legacy and cannot be removed I have the following class
[DataContract(IsReference = true)]
public class test
{
[DataMember]
private static object _lockObject = new object();
[DataMember]
private int num;
}
And I try to serialize it using Json.NET as follows :
StringBuilder sb = new StringBuilder();
TextWriter text = new StringWriter(sb);
var serializer = new JsonSerializer();
serializer.TypeNameHandling = TypeNameHandling.Auto;
serializer.PreserveReferencesHandling = PreserveReferencesHandling.None;
serializer.NullValueHandling = NullValueHandling.Ignore;
serializer.TraceWriter = new MemoryTraceWriter();
serializer.ReferenceLoopHandling = ReferenceLoopHandling.Serialize;
serializer.PreserveReferencesHandling = PreserveReferencesHandling.All;
serializer.TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Full;
var test = new test();
serializer.Serialize(text, test);
I get an error
Error getting value from '_lockObject'
If i remove the static from _lockObject the serialization is successful