Exemple #1
0
 /// <summary>
 /// Приведение объекта к новому состоянию путем применения цепочки изменений
 /// </summary>
 /// <param name="local">Текущее состояние объекта</param>
 /// <param name="differents">Цепочка изменений</param>
 /// <returns>Объект в новом состоянии</returns>
 public static object DiffMap(object local, DiffChain differents)
 {
     if (local == null)
     {
         throw new ArgumentNullException("local");
     }
     foreach (var diff in differents)
     {
         var context = new MapContext(new ResolverMap(), diff, local.GetType());
         context.Resolvers.FindResolver(local.GetType()).Map(ref local, diff, context);
     }
     return(local);
 }
Exemple #2
0
 public void Add(DiffChain items)
 {
     if (_isLocked == false)
     {
         foreach (var item in items)
         {
             _chain.Add(item);
         }
     }
     else
     {
         throw new InvalidOperationException("It is read only collection");
     }
 }
Exemple #3
0
 public static byte[] ToBinary(DiffChain chan)
 {
     return(BinarySerializeService.ObjectToByteArray(chan));
 }