public UserControl GetUserControl(string fileName) { try { if (!File.Exists(fileName)) { return null; } Assembly assembly1 = Assembly.LoadFrom(fileName); Type.GetType("UserControl", false, false); foreach (Module moudle1 in assembly1.GetModules()) { foreach (Type type1 in moudle1.GetTypes()) { if (type1.IsSubclassOf(typeof(UserControl))) { ArrayList strs = new ArrayList(); foreach (FieldInfo info in type1.GetFields()) { strs.Add(info.Name); } if (strs.Contains("Flag")) { return (UserControl)assembly1.CreateInstance(type1.FullName); } } } } return null; } catch (Exception ex) { MessageBox.Show(ex.Message); return null; } } public Form GetForm(string fileName) { try { if (!File.Exists(fileName)) { return null; } Assembly assembly1 = Assembly.LoadFrom(fileName); Type.GetType("Form", false, false); foreach (Module moudle1 in assembly1.GetModules()) { foreach (Type type1 in moudle1.GetTypes()) { if (type1.IsSubclassOf(typeof(Form))) { ArrayList strs = new ArrayList(); foreach (FieldInfo info in type1.GetFields()) { strs.Add(info.Name); } if (strs.Contains("Flag")) { return (Form)assembly1.CreateInstance(type1.FullName); } } } } return null; } catch (Exception ex) { MessageBox.Show(ex.ToString()); return null; ; } }