public void HiddenPropertiesWithCustomValuesAndDefaults() { ICSScriptSerializer _; CSScriptSerializer.Serializers.TryRemove(typeof(HiddenDerived), out _); CSScriptSerializer.Serializers[typeof(HiddenDerived)] = new PropertyCSScriptSerializer <HiddenDerived>( new Dictionary <string, Func <HiddenDerived, object, bool> > { { "Property", (o, v) => (int)v != 2 } }, null, new Dictionary <string, Func <HiddenDerived, object> > { { "Property", o => o.Property + 1 } }, new Dictionary <string, Func <HiddenDerived, object, bool> > { { "HiddenBase.Property", (o, v) => (string)v != "11" } }, new Dictionary <string, Func <HiddenDerived, object> > { { "HiddenBase.Property", o => ((HiddenBase)o).Property + "1" } }); var input = new HiddenDerived { Property = 1 }; ((HiddenBase)input).Property = "1"; var script = CSScriptSerializer.Serialize(input); var output = CSScriptSerializer.Deserialize <HiddenDerived>(script); Assert.Equal(0, output.Property); Assert.Null(((HiddenBase)output).Property); input = new HiddenDerived { Property = 2 }; ((HiddenBase)input).Property = "2"; script = CSScriptSerializer.Serialize(input); output = CSScriptSerializer.Deserialize <HiddenDerived>(script); Assert.Equal(3, output.Property); Assert.Equal("21", ((HiddenBase)output).Property); CSScriptSerializer.Serializers.TryRemove(typeof(HiddenDerived), out _); }
public void HiddenProperties() { var input = new HiddenDerived { Property = 2 }; ((HiddenBase)input).Property = "1"; var script = CSScriptSerializer.Serialize(input); var output = CSScriptSerializer.Deserialize <HiddenDerived>(script); Assert.Equal(input.Property, output.Property); Assert.Equal(((HiddenBase)input).Property, ((HiddenBase)output).Property); }