public void SelfReference_Test() { var parentNodeDto = new NodeDto { Name = "parentNode", }; parentNodeDto.SetProperty("node", "parent-value"); var nodeDto = new NodeDto { Name = "node", Parent = parentNodeDto }; nodeDto.SetProperty("node", "node-value"); var json = _jsonSerializer.Serialize(nodeDto); nodeDto = _jsonSerializer.Deserialize <NodeDto>(json); nodeDto.ShouldNotBeNull(); nodeDto.Name.ShouldBe("node"); nodeDto.GetProperty("node").ShouldBe("node-value"); nodeDto.Parent.ShouldNotBeNull(); nodeDto.Parent.Name.ShouldBe("parentNode"); nodeDto.Parent.GetProperty("node").ShouldBe("parent-value"); }