protected void AddSurrogateDeps <T>(T[] surrogateArray, GetDepsContext context) where T : PersistentSurrogate
 {
     for (int i = 0; i < surrogateArray.Length; ++i)
     {
         PersistentSurrogate surrogate = surrogateArray[i];
         surrogate.GetDeps(context);
     }
 }
 protected void AddSurrogateDeps(object obj, GetDepsFromContext context)
 {
     if (obj != null)
     {
         PersistentSurrogate surrogate = (PersistentSurrogate)obj;
         surrogate.GetDepsFrom(obj, context);
     }
 }
 protected void AddSurrogateDeps <T>(T obj, Func <T, PersistentSurrogate> convert, GetDepsFromContext context)
 {
     if (obj != null)
     {
         PersistentSurrogate surrogate = convert(obj);
         surrogate.GetDepsFrom(obj, context);
     }
 }
 protected void AddSurrogateDeps <T>(T[] objArray, GetDepsFromContext context)
 {
     for (int i = 0; i < objArray.Length; ++i)
     {
         object obj = objArray[i];
         if (obj != null)
         {
             PersistentSurrogate surrogate = (PersistentSurrogate)obj;
             surrogate.GetDepsFrom(obj, context);
         }
     }
 }
 protected void AddSurrogateDeps <T>(List <T> surrogateList, GetDepsContext context) where T : PersistentSurrogate
 {
     if (surrogateList == null)
     {
         return;
     }
     for (int i = 0; i < surrogateList.Count; ++i)
     {
         PersistentSurrogate surrogate = surrogateList[i];
         surrogate.GetDeps(context);
     }
 }
 protected void AddSurrogateDeps <T>(List <T> objList, Func <T, PersistentSurrogate> convert, GetDepsFromContext context)
 {
     if (objList == null)
     {
         return;
     }
     for (int i = 0; i < objList.Count; ++i)
     {
         T obj = objList[i];
         if (obj != null)
         {
             PersistentSurrogate surrogate = convert(obj);
             surrogate.GetDepsFrom(obj, context);
         }
     }
 }
 protected void AddSurrogateDeps <T>(T[] objArray, Func <T, PersistentSurrogate> convert, GetDepsFromContext context)
 {
     if (objArray == null)
     {
         return;
     }
     for (int i = 0; i < objArray.Length; ++i)
     {
         T obj = objArray[i];
         if (obj != null)
         {
             PersistentSurrogate surrogate = convert(obj);
             surrogate.GetDepsFrom(obj, context);
         }
     }
 }
 protected void AddSurrogateDeps(PersistentSurrogate surrogate, GetDepsContext context)
 {
     surrogate.GetDeps(context);
 }