/// <summary> /// Registers an encode/decode method pair for a specific type. /// </summary> /// <typeparam name="T">The type.</typeparam> /// <param name="toJson">The serializer method.</param> /// <param name="fromJson">The deserializer method.</param> /// <exception cref="TypeRegistrationException">Thrown if either, but not both, <paramref name="toJson"/> /// or <paramref name="fromJson"/> is null.</exception> public void RegisterType <T>(ToJsonDelegate <T> toJson, FromJsonDelegate <T> fromJson) { if ((toJson == null && fromJson != null) || (toJson != null && fromJson == null)) { throw new TypeRegistrationException(typeof(T)); } var type = typeof(T); if (toJson == null) { _toJsonConverters.Remove(type); _fromJsonConverters.Remove(type); return; } _toJsonConverters[type] = toJson; _fromJsonConverters[type] = fromJson; }
/// <summary> /// Registers an encode/decode method pair for a specific type. /// </summary> /// <typeparam name="T">The type.</typeparam> /// <param name="toJson">The serializer method.</param> /// <param name="fromJson">The deserializer method.</param> /// <exception cref="TypeRegistrationException">Thrown if either, but not both, <paramref name="toJson"/> /// or <paramref name="fromJson"/> is null.</exception> public static void RegisterType <T>(ToJsonDelegate <T> toJson, FromJsonDelegate <T> fromJson) { CustomSerializations.Default.RegisterType <T>((o, s) => toJson(o, s), (j, s) => fromJson(j, s)); }