Exemple #1
0
 public void SyncMapObject(IMap pSourceMap, ref IMap pTargetMap, bool bClearElements)
 {
     try
     {
         if ((pSourceMap != null) && (pTargetMap != null))
         {
             IObjectCopy copy = null;
             copy = new ObjectCopyClass();
             object pInObject = null;
             pInObject = pSourceMap;
             object obj3 = null;
             obj3 = copy.Copy(pInObject);
             object pOverwriteObject = null;
             pOverwriteObject = pTargetMap;
             copy.Overwrite(obj3, ref pOverwriteObject);
             IActiveView        view = pTargetMap as IActiveView;
             IGraphicsContainer graphicsContainer = view.GraphicsContainer;
             if (graphicsContainer != null)
             {
                 IViewManager manager          = view as IViewManager;
                 ISelection   elementSelection = manager.ElementSelection;
                 view.Selection = elementSelection;
             }
             if (bClearElements)
             {
                 graphicsContainer.DeleteAllElements();
             }
         }
     }
     catch (Exception exception)
     {
         this.mErrOpt.ErrorOperate(this.mSubSysName, "FunFactory.CoreFun", "SyncMapObject", exception.GetHashCode().ToString(), exception.Source, exception.Message, "", "", "");
     }
 }
Exemple #2
0
 public void SyncPageLayoutObject(IPageLayout pSourcePage, ref IPageLayout pTargetPage)
 {
     try
     {
         if ((pSourcePage != null) && (pTargetPage != null))
         {
             IObjectCopy copy = null;
             copy = new ObjectCopyClass();
             object pInObject = null;
             pInObject = pSourcePage;
             object obj3 = null;
             obj3 = copy.Copy(pInObject);
             object pOverwriteObject = null;
             pOverwriteObject = pTargetPage;
             copy.Overwrite(obj3, ref pOverwriteObject);
             IActiveView view = pTargetPage as IActiveView;
             if (view.GraphicsContainer != null)
             {
                 IViewManager manager          = view as IViewManager;
                 ISelection   elementSelection = manager.ElementSelection;
                 view.Selection = elementSelection;
             }
         }
     }
     catch (Exception exception)
     {
         this.mErrOpt.ErrorOperate(this.mSubSysName, "FunFactory.CoreFun", "SyncPageLayoutObject", exception.GetHashCode().ToString(), exception.Source, exception.Message, "", "", "");
     }
 }
Exemple #3
0
        /// <summary>
        /// 深层拷贝一个实例对象。
        /// </summary>
        /// <typeparam name="TObject">带序列化的目标类</typeparam>
        /// <param name="obj">目标类的一个实例对象。</param>
        /// <param name="copyAction">深层拷贝对象的方式:<c>null</c> = 二进制拷贝方式(必须标记 Serializable 特性,或者实现 ISerializable 接口)。</param>
        /// <returns>深层克隆的一个目标类的实例对象。</returns>
        public static TObject Copy <TObject>(this TObject obj, IObjectCopy copyAction = null) where TObject : class
        {
            if (ReferenceEquals(obj, null))
            {
                return(obj);
            }

            if (ReferenceEquals(copyAction, null))
            {
                copyAction = new BinaryObjectCopy {
                    ObjectType = typeof(TObject)
                }
            }
            ;
            else
            {
                copyAction.ObjectType = typeof(TObject);
            }

            using (var stream = copyAction.Serialize(obj))
            {
                stream.Seek(0, SeekOrigin.Begin);
                return((TObject)copyAction.Deserialize(stream));
            }
        }