Beispiel #1
0
        /// <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;
        }
Beispiel #2
0
 /// <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));
 }