public void WriteObjectTypeNameForProperty() { string typeNamePropertyRef = ReflectionUtils.GetTypeName(typeof(TypeNameProperty), FormatterAssemblyStyle.Simple); TypeNameProperty typeNameProperty = new TypeNameProperty { Name = "Name!", Value = new TypeNameProperty { Name = "Nested!" } }; string json = JsonConvert.SerializeObject(typeNameProperty, Formatting.Indented); Assert.AreEqual(@"{ ""Name"": ""Name!"", ""Value"": { ""$type"": """ + typeNamePropertyRef + @""", ""Name"": ""Nested!"", ""Value"": null } }", json); TypeNameProperty deserialized = JsonConvert.DeserializeObject <TypeNameProperty>(json); Assert.AreEqual("Name!", deserialized.Name); Assert.IsInstanceOfType(typeof(TypeNameProperty), deserialized.Value); TypeNameProperty nested = (TypeNameProperty)deserialized.Value; Assert.AreEqual("Nested!", nested.Name); Assert.AreEqual(null, nested.Value); }
public void WriteListTypeNameForProperty() { string listRef = ReflectionUtils.GetTypeName(typeof(List <int>), FormatterAssemblyStyle.Simple); TypeNameProperty typeNameProperty = new TypeNameProperty { Name = "Name!", Value = new List <int> { 1, 2, 3, 4, 5 } }; string json = JsonConvert.SerializeObject(typeNameProperty, Formatting.Indented); Assert.AreEqual(@"{ ""Name"": ""Name!"", ""Value"": { ""$type"": """ + listRef + @""", ""$values"": [ 1, 2, 3, 4, 5 ] } }", json); TypeNameProperty deserialized = JsonConvert.DeserializeObject <TypeNameProperty>(json); Assert.AreEqual("Name!", deserialized.Name); Assert.IsInstanceOfType(typeof(List <int>), deserialized.Value); List <int> nested = (List <int>)deserialized.Value; Assert.AreEqual(5, nested.Count); Assert.AreEqual(1, nested[0]); Assert.AreEqual(2, nested[1]); Assert.AreEqual(3, nested[2]); Assert.AreEqual(4, nested[3]); Assert.AreEqual(5, nested[4]); }
public void WriteObjectTypeNameForProperty() { string typeNamePropertyRef = ReflectionUtils.GetTypeName(typeof(TypeNameProperty), FormatterAssemblyStyle.Simple); TypeNameProperty typeNameProperty = new TypeNameProperty { Name = "Name!", Value = new TypeNameProperty { Name = "Nested!" } }; string json = JsonConvert.SerializeObject(typeNameProperty, Formatting.Indented); Assert.AreEqual(@"{ ""Name"": ""Name!"", ""Value"": { ""$type"": """ + typeNamePropertyRef + @""", ""Name"": ""Nested!"", ""Value"": null } }", json); TypeNameProperty deserialized = JsonConvert.DeserializeObject<TypeNameProperty>(json); Assert.AreEqual("Name!", deserialized.Name); Assert.IsInstanceOfType(typeof(TypeNameProperty), deserialized.Value); TypeNameProperty nested = (TypeNameProperty)deserialized.Value; Assert.AreEqual("Nested!", nested.Name); Assert.AreEqual(null, nested.Value); }
public void WriteListTypeNameForProperty() { string listRef = ReflectionUtils.GetTypeName(typeof(List<int>), FormatterAssemblyStyle.Simple); TypeNameProperty typeNameProperty = new TypeNameProperty { Name = "Name!", Value = new List<int> { 1, 2, 3, 4, 5 } }; string json = JsonConvert.SerializeObject(typeNameProperty, Formatting.Indented); Assert.AreEqual(@"{ ""Name"": ""Name!"", ""Value"": { ""$type"": """ + listRef + @""", ""$values"": [ 1, 2, 3, 4, 5 ] } }", json); TypeNameProperty deserialized = JsonConvert.DeserializeObject<TypeNameProperty>(json); Assert.AreEqual("Name!", deserialized.Name); Assert.IsInstanceOfType(typeof(List<int>), deserialized.Value); List<int> nested = (List<int>)deserialized.Value; Assert.AreEqual(5, nested.Count); Assert.AreEqual(1, nested[0]); Assert.AreEqual(2, nested[1]); Assert.AreEqual(3, nested[2]); Assert.AreEqual(4, nested[3]); Assert.AreEqual(5, nested[4]); }
set => SetValue(TypeNameProperty, value);