Example #1
0
 /// <summary>
 /// Creates a new instance of <see cref="KeyBasedDeserializer{TDeserializationSource, TValue, TKey, TInnerDeserializationSource}"/> with given deserializer dictionary and key extraction callback.
 /// </summary>
 /// <param name="deserializers">The deserializer dictionary.</param>
 /// <param name="extractKey">The key extraction callback.</param>
 /// <exception cref="ArgumentNullException">If any of <paramref name="deserializers"/>, <paramref name="extractKey"/> is <c>null</c>.</exception>
 public KeyBasedDeserializer(
     IDictionary <TKey, DeserializationFunctionality <TInnerDeserializationSource, TValue> > deserializers,
     ExtractKeyCallback extractKey
     )
 {
     this._deserializers = ArgumentValidator.ValidateNotNull("Serializers", deserializers);
     this._extractKey    = ArgumentValidator.ValidateNotNull("Extract key", extractKey);
 }
Example #2
0
 /// <summary>
 /// Creates a new <see cref="NumericIDBasedDeserializer{TDeserializationSource, TValue, TInnerDeserializationSource}"/> with given parameters.
 /// </summary>
 /// <param name="deserializers">The deserializer dictionary.</param>
 /// <param name="extractKey">The key extraction callback.</param>
 /// <param name="deserializersArray">The optional array to use for keys which are small enough.</param>
 /// <param name="dictionaryKeyProcessor">The optional callback to use when giving the key to dictionary lookup.</param>
 public NumericIDBasedDeserializer(
     IDictionary <Int32, DeserializationFunctionality <TInnerDeserializationSource, TValue> > deserializers,
     ExtractKeyCallback extractKey,
     DeserializationFunctionality <TInnerDeserializationSource, TValue>[] deserializersArray,
     Func <Int32, Int32> dictionaryKeyProcessor
     ) : base(deserializers ?? new Dictionary <Int32, DeserializationFunctionality <TInnerDeserializationSource, TValue> >(), extractKey)
 {
     this._deserializers           = deserializersArray ?? Empty <DeserializationFunctionality <TInnerDeserializationSource, TValue> > .Array;
     this._processKeyForDictionary = dictionaryKeyProcessor ?? Identity <Int32> .Function;
 }