예제 #1
0
 private static DeserializationDelegate CreateDelegate(ArrayDeserializationDelegate functionality)
 {
     ArgumentValidator.ValidateNotNull("Functionality", functionality);
     return((ArrayIndex <TArrayElement> source, out Int32 unitsProcessed, out Boolean success) =>
     {
         var idx = source.Index;
         var originalIdx = idx;
         var retVal = functionality(source.Array, ref idx);
         unitsProcessed = idx - originalIdx;
         success = true;
         return retVal;
     });
 }
예제 #2
0
 /// <summary>
 /// Creates a new instance of <see cref="DeserializationFunctionalityWrapperForArrays{TDeserializationSource, TValue}"/> with given callback which should perform the deserialization.
 /// </summary>
 /// <param name="functionality">The callback to perform deserialization.</param>
 /// <exception cref="ArgumentNullException">If <paramref name="functionality"/> is <c>null</c>.</exception>
 public DeserializationFunctionalityWrapperForArrays(ArrayDeserializationDelegate functionality)
     : base(CreateDelegate(functionality))
 {
 }