Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
0
        /// <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);
            }
        }