コード例 #1
0
        public object DeepClone(object param)
        {
            Config4Impl ret = new Config4Impl();

            Config4Impl.ConfigDeepCloneContext context = new Config4Impl.ConfigDeepCloneContext
                                                             (this, ret);
            ret._config        = (KeySpecHashtable4)_config.DeepClone(context);
            ret._internStrings = _internStrings;
            ret._messageLevel  = _messageLevel;
            ret._readOnly      = _readOnly;
            if (_registeredTypeHandlers != null)
            {
                ret._registeredTypeHandlers = (Collection4)_registeredTypeHandlers.DeepClone(context
                                                                                             );
            }
            return(ret);
        }
コード例 #2
0
ファイル: GenericReflector.cs プロジェクト: git-thinh/limada
 /// <summary>Creates a clone of provided object</summary>
 /// <param name="obj">object to copy</param>
 /// <returns>copy of the submitted object</returns>
 public virtual object DeepClone(object obj)
 {
     Db4objects.Db4o.Reflect.Generic.GenericReflector myClone = new Db4objects.Db4o.Reflect.Generic.GenericReflector
                                                                    (null, (IReflector)_delegate.DeepClone(this));
     myClone._collectionPredicates = (Collection4)_collectionPredicates.DeepClone(myClone
                                                                                  );
     // Interesting, adding the following messes things up.
     // Keep the code, since it may make sense to carry the
     // global reflectors into a running db4o session.
     //        Iterator4 i = _classes.iterator();
     //        while(i.hasNext()){
     //            GenericClass clazz = (GenericClass)i.next();
     //            clazz = (GenericClass)clazz.deepClone(myClone);
     //            myClone._classByName.put(clazz.getName(), clazz);
     //            myClone._classes.add(clazz);
     //        }
     return(myClone);
 }