Пример #1
0
 /// <summary>
 /// Copies an object's data to another object.
 /// </summary>
 /// <typeparam name="T">The type of object to copy.</typeparam>
 /// <param name="src">The object to copy.</param>
 /// <param name="dest">The object to copy the source object's data to.</param>
 public static void CopyTo(this object src, object dest, IDCopyBehavior rootBehavior = IDCopyBehavior.PreserveSource, IDCopyBehavior subordinateBehavior = IDCopyBehavior.PreserveSource)
 {
     if (src.GetType() != dest.GetType())
     {
         throw new Exception("Can only copy objects onto objects of the same type.");
     }
     dest.InjectFrom(new OnlySafePropertiesInjection(src, true, rootBehavior, subordinateBehavior), src);
 }
Пример #2
0
            public OnlySafePropertiesInjection(object root, bool deep, IDCopyBehavior rootBehavior, IDCopyBehavior subordinateBehavior, IDictionary <object, object> known = null)
            {
                Root                = root;
                DeepCopy            = deep;
                RootBehavior        = rootBehavior;
                SubordinateBehavior = subordinateBehavior;

                if (known != null)
                {
                    foreach (var kvp in known)
                    {
                        knownObjects.Add(kvp);
                    }
                }
            }
Пример #3
0
 /// <summary>
 /// Copies an object's data to another object. Skips the ID property.
 /// </summary>
 /// <typeparam name="T">The type of object to copy.</typeparam>
 /// <param name="src">The object to copy.</param>
 /// <param name="dest">The object to copy the source object's data to.</param>
 public static void CopyToExceptID(this IReferrable src, IReferrable dest, IDCopyBehavior subordinateBehavior)
 {
     src.CopyTo(dest, IDCopyBehavior.PreserveDestination, subordinateBehavior);
 }