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(); } }
/// <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); } }