/// <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); }
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"); } }
public static byte[] ToBinary(DiffChain chan) { return(BinarySerializeService.ObjectToByteArray(chan)); }