using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using SOH.Kernel; using EAS.Services; using System.Reflection; using System.IO; using SOH.BLL; using SOH.Entities; namespace SOH.BasicSettings { [ModuleAttribute(ModuleID = "7A8E178B-E059-4BC9-ACC7-4D1561D5C13E", ModuleName = "加载所有程序模块")] public partial class frmAddModules : SOH.Window.baseChildForm { List sys_asss = new List(); DataTable dt = new DataTable(); public frmAddModules() { InitializeComponent(); } private void btn_load_Click(object sender, EventArgs e) { initass(); } private void initass() { //throw new NotImplementedException(); var qx = ServiceContainer.GetService(); string[] dlls = Directory.GetFiles(Application.StartupPath) .Where(p => p.ToLower().EndsWith(".dll")).ToArray(); var basebll = EAS.Services.ServiceContainer.GetService(); foreach (string dll in dlls) { try { Assembly ass = Assembly.LoadFrom(dll); object[] cusatt = ass.GetCustomAttributes(typeof(AssemblyAttribute), false); if (cusatt.Length > 0) { //ToolStripItem tsi = new ToolStripItem(); //ToolStripMenuItem tsmi = new ToolStripMenuItem(); AssemblyAttribute assatt = cusatt[0] as AssemblyAttribute; //tsmi.Text = assatt.AssemblyName; // tsmi.Click += tsmi_Click; //mainMenu.Items.Add() SYS_ASS sass = qx.getAss(assatt.ID); if (sass == null) { sass = new SYS_ASS(); } sass.dllname = new FileInfo(dll).Name; sass.updatetime = new FileInfo(dll).LastWriteTime; sass.guid = assatt.ID; sass.assname = assatt.AssemblyName; //sass.id = basebll.GetMax(sass.DbTableName, 1); //sass.a foreach (Type t in ass.GetTypes()) { object[] matt = t.GetCustomAttributes(typeof(ModuleAttribute), false); if (matt.Length > 0) { ModuleAttribute modatt = matt[0] as ModuleAttribute; modules m = new modules(); m.assid = sass.id; m.FullName = t.FullName; m.typename = modatt.ModuleName; m.guid = modatt.ModuleID; DataRow dr = dt.NewRow(); dr["assid"] = sass.guid; dr["lastupdatetime"] = sass.updatetime; dr["assname"] = sass.assname; dr["dllname"] = sass.dllname; dr["moduleid"] = m.guid; dr["fullname"] = m.FullName; dr["modulename"] = m.typename; dt.Rows.Add(dr); Application.DoEvents(); sass.modules.Add(m); } } //qx.addASS(sass); sys_asss.Add(sass); } } catch (Exception ex) { //MessageBox.Show(ex.Message); } } } private void frmAddModules_Load(object sender, EventArgs e) { dt.Columns.Add("assid"); dt.Columns.Add("assname"); dt.Columns.Add("lastupdatetime"); dt.Columns.Add("moduleid"); dt.Columns.Add("dllname"); dt.Columns.Add("modulename"); dt.Columns.Add("fullname"); dataGridView1.DataSource = dt; } private void btn_insert_Click(object sender, EventArgs e) { try { var qx = ServiceContainer.GetService(); foreach (SYS_ASS sa in sys_asss) { qx.addASS(sa); } MessageBox.Show("安装成功!"); } catch (System.Exception ex) { MessageBox.Show(ex.Message); } } } }