/// <inheritdoc /> public JsonCacheSerializer() { var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto, DateTimeZoneHandling = DateTimeZoneHandling.RoundtripKind, Formatting = Formatting.None, SerializationBinder = _serializationBinder, ContractResolver = _contractResolver }; settings.Converters.Add(new ExplicitTypesConverter()); // Setup the Hashtable serialization var contract = settings.ContractResolver.ResolveContract(typeof(Hashtable)); contract.Converter = new HashtableConverter(); contract.OnDeserializedCallbacks.Add((o, context) => HashtableConverter.OnDeserialized(o, _serializer)); _serializer = Serializer.Create(settings); }
protected Hashtable GetSubmitData(string button = null) { if (AlternateValues == null) { return(Values); } Hashtable serializedValues = HashtableConverter.ConvertObjectPropertiesToHashtable(AlternateValues); foreach (string key in serializedValues.Keys) { object value = serializedValues[key]; if (value != null) { Values[key] = value; } } AssignSubmitButton(button); return(Values); }