Exemple #1
0
        static void ObjWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker ProjWorker = sender as BackgroundWorker;

            object[] param   = e.Argument as object[];
            FileInfo file    = param[0] as FileInfo;
            CResult  cresult = param[1] as CResult;

            using (FileStream stream = new FileStream(file.FullName, FileMode.Open, FileAccess.Read))
            {
                GZipStream zip = new GZipStream(stream, CompressionMode.Decompress);
                {
                    BinaryFormatter formater = new BinaryFormatter();
                    _FileHeader     header   = (_FileHeader)formater.Deserialize(zip);
                    _StructSource   ds       = (_StructSource)formater.Deserialize(zip);
                    //创建新的单位工程(单位工程业务体)
                    _UnitProject unit = new _UnitProject();
                    unit.Ready(ds);

                    /*obj.InSerializable(file);
                     *
                     * //初始化新的临时对象(不参与序列化此对象每次使用需要呗初始化)
                     * obj.Property.Temporary = new _Temporary();
                     * //默认同步临时库对象
                     * obj.Property.Temporary.Libraries = obj.Property.DLibraries.Copy();
                     * obj.Property.Temporary.Libraries.Init(APP.Application);*/
                    cresult.Value   = unit;
                    cresult.Success = true;
                    e.Result        = new object[] { file, cresult };
                }
                zip.Close();
            }
        }
Exemple #2
0
        /// <summary>
        /// 单位工程处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        static void UnitWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                BackgroundWorker ProjWorker = sender as BackgroundWorker;
                object[]         param      = e.Argument as object[];
                ApplicationForm  form       = param[0] as ApplicationForm;
                _Files           file       = param[1] as _Files;
                _Business        bus        = param[2] as _Business;

                using (FileStream stream = new FileStream(file.FullName, FileMode.Open, FileAccess.Read))
                {
                    //stream.Position = 0;
                    GZipStream zip = new GZipStream(stream, CompressionMode.Decompress, true);
                    {
                        //zip.Seek(0, SeekOrigin.Begin);
                        BinaryFormatter formater = new BinaryFormatter();
                        _FileHeader     header   = (_FileHeader)formater.Deserialize(zip);
                        _StructSource   ds       = (_StructSource)formater.Deserialize(zip);
                        //创建新的单位工程(单位工程业务体)
                        _UnitProject unit = new _UnitProject();
                        unit.Files = file;
                        unit.Ready(ds);
                        //初始化新的临时对象(不参与序列化此对象每次使用需要呗初始化)

                        /*obj.Property.Temporary = new _Temporary();
                         * //默认同步临时库对象
                         * obj.Property.Temporary.Libraries = obj.Property.DLibraries.Copy();
                         * obj.Property.Temporary.Libraries.Init(APP.Application);
                         * obj.Application = APP.Application;*/
                        e.Result = new object[] { form, unit, bus };
                    }
                    zip.Close();
                }
            }
            catch (Exception)
            {
                MsgBox.Show(_Prompt.无法识别的打开文件, MessageBoxButtons.OK);
            }
        }