/// <summary> /// Получить информацию о библиотеках КП /// </summary> private void GetKpDllInfo() { kpDllInfoList.Clear(); lbKpDll.Items.Clear(); cbKpDll.Items.Clear(); try { DirectoryInfo dirInfo = new DirectoryInfo(appDirs.KPDir); FileInfo[] fileInfoAr = dirInfo.GetFiles("kp*.dll", SearchOption.TopDirectoryOnly); foreach (FileInfo fileInfo in fileInfoAr) { if (!fileInfo.Name.Equals("kp.dll", StringComparison.OrdinalIgnoreCase)) { try { KPView kpView = KPFactory.GetKPView(appDirs.KPDir, fileInfo.Name); kpView.AppDirs = appDirs; KpDllInfo kpDllInfo = new KpDllInfo() { FileName = fileInfo.Name, KpType = kpView.GetType(), KpView = kpView }; kpDllInfoList.Add(kpDllInfo.FileName, kpDllInfo); } catch (Exception ex) { errLog.WriteAction(ex.Message); } } } // заполнение списков cbKpDll и lbKpDll if (kpDllInfoList.Count > 0) { foreach (KpDllInfo kpDllInfo in kpDllInfoList.Values) { lbKpDll.Items.Add(kpDllInfo.FileName); cbKpDll.Items.Add(kpDllInfo.FileName); } lbKpDll.SelectedIndex = 0; } } catch (Exception ex) { errLog.WriteAction(AppPhrases.GetKpTypeInfoError + ":\r\n" + ex.Message); } }
/// <summary> /// Получить информацию о библиотеках КП /// </summary> private void GetKpDllInfo() { kpDllInfoList.Clear(); lbKpDll.Items.Clear(); cbKpDll.Items.Clear(); try { DirectoryInfo dirInfo = new DirectoryInfo(kpDir); FileInfo[] fileInfoAr = dirInfo.GetFiles("kp*.dll", SearchOption.TopDirectoryOnly); foreach (FileInfo fileInfo in fileInfoAr) { if (fileInfo.Name.ToLower() != "kp.dll") { KpDllInfo kpDllInfo = new KpDllInfo(); kpDllInfo.ShtName = Path.GetFileNameWithoutExtension(fileInfo.Name); kpDllInfo.FileName = fileInfo.Name; string typeFullName = "Scada.Comm.KP." + kpDllInfo.ShtName + "View"; try { Assembly asm = Assembly.LoadFile(fileInfo.FullName); kpDllInfo.KpType = asm.GetType(typeFullName); kpDllInfo.KpView = Activator.CreateInstance(kpDllInfo.KpType) as KPView; kpDllInfo.KpView.ConfigDir = configDir; kpDllInfo.KpView.LangDir = langDir; kpDllInfo.KpView.CmdDir = cmdDir; kpDllInfoList.Add(kpDllInfo.ShtName, kpDllInfo); } catch (Exception ex) { errLog.WriteAction(string.Format(AppPhrases.GetKpTypeError, fileInfo.FullName) + ":\r\n" + ex.Message); } } } // заполнение списков cbKpDll и lbKpDll if (kpDllInfoList.Count > 0) { foreach (KpDllInfo kpDllInfo in kpDllInfoList.Values) { lbKpDll.Items.Add(kpDllInfo.FileName); cbKpDll.Items.Add(kpDllInfo.ShtName); } lbKpDll.SelectedIndex = 0; } } catch (Exception ex) { errLog.WriteAction(AppPhrases.GetKpTypeInfoError + ":\r\n" + ex.Message); } }