Assembly asmMain = Assembly.LoadFrom(Application.StartupPath + "//" + strFileName);
Type typLoad = asmMain.GetType(strMainClass);
object GenericInstance;
if (strParameter == "")
GenericInstance = Activator.CreateInstance(typLoad);
else
{
ModuleData mp;
mp.ModuleName = strModuleName;
mp.ModuleCode = strModuleCode;
mp.CallFileName = strFileName;
mp.CallRevision = "";
mp.CallClass = strMainClass;
mp.CallParam = strParameter;
object[] Args = new object[1] { mp };
GenericInstance = Activator.CreateInstance(typLoad, Args);
}
// MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1");
// Obtain a reference to the parameters collection of the MethodInfo instance.
//ParameterInfo[] Params = Method.GetParameters();
Form frmShow = (Form)GenericInstance;
frmShow.Name = strModuleCode;
string strLocal = Properties.Resources.ResourceManager.GetString(strModuleName);
if (!string.IsNullOrEmpty(strLocal))
frmShow.Text = ParentText + "-" + strLocal;
else
frmShow.Text = ParentText + "-" + strModuleName;
if (typLoad.Name == "frmOrganization")
{
EventInfo objectEventInfo = typLoad.GetEvent("OnRefreshMain");
Type objectEventHandlerType = objectEventInfo.EventHandlerType;
MethodInfo mi = this.GetType().GetMethod("RefreshFunctionTree", BindingFlags.Public | BindingFlags.Instance);
Delegate del = Delegate.CreateDelegate(objectEventHandlerType, this, mi);
objectEventInfo.AddEventHandler(frmShow, del);
//EventInfo[] enArr = typLoad.GetEvents();
//for (int i = 0; i < enArr.Length; i++)
//{
// if (enArr[i].Name == "OnRefreshMain")
// {
// enArr[i].AddEventHandler(frmShow, new EventHandler(RefreshFunctionTree));
// }
//}
}
if (intModal == 0)
{
frmShow.MdiParent = MidParentForm;
frmShow.Show();
}
else
{
frmShow.ShowDialog();
}
public void RefreshFunctionTree(object sender, System.EventArgs e)
{
....
}