public IDataConvert GetConvertChain(List <string> versions, Dictionary <string, string> convertInfo, string dllName) { IDataConvert result; if (versions.Count != 0) { string text = versions[0]; object objectFromAssembly = AssemblyAssist.GetObjectFromAssembly(convertInfo[text], dllName); IDataConvert dataConvert = objectFromAssembly as IDataConvert; dataConvert.SetVersion(text); versions.Remove(text); convertInfo.Remove(text); if (dataConvert.GetNext() == null) { IDataConvert convertChain = this.GetConvertChain(versions, convertInfo, dllName); dataConvert.SetNext(convertChain); result = dataConvert; } else { result = dataConvert; } } else { result = null; } return(result); }
private void CreateSubSys() { SubSysCfgReader subSysCfgReader = new SubSysCfgReader(this.m_CfgFile); Dictionary <string, string> subSysTypeName = subSysCfgReader.GetSubSysTypeName(); Dictionary <string, Dictionary <string, string> > subSysConvertName = subSysCfgReader.GetSubSysConvertName(); foreach (string current in subSysTypeName.Keys) { string text = subSysTypeName[current]; IGeneralSubSys geSys = null; try { object objectFromAssembly = AssemblyAssist.GetObjectFromAssembly(current, text); geSys = (objectFromAssembly as IGeneralSubSys); } catch (Exception ex) { WriteLog.Logger.Error(string.Concat(new string[] { "Load ", text, "Failed :", ex.Message, " ", ex.StackTrace })); throw ex; } this.CreateSubSysCall0(subSysConvertName, current, text, geSys); } }