Assembly tempAssembly = Assembly.LoadFrom("myEXE.exe");
Form frm1 = (Form) tempAssembly.CreateInstance("FormClassName");
frm1.Show(); see
http://www.syncfusion.com/FAQ/WinForms/FAQ_c95c.asp?print=729
Form frm1 = (Form) tempAssembly.CreateInstance("FormClassName");
frm1.Show(); see
http://www.syncfusion.com/FAQ/WinForms/FAQ_c95c.asp?print=729
调用别的类?比如要调用下面的DataSetPortal类的GetDataSet方法
public class DataSetPortal
{
public DataSetPortal()
{
//
// TODO: 在此处添加构造函数逻辑
//
} public static DataSet GetDataSet( string date )
{
return new DataSet();
}
}
object[] arguments = new object[1]{"YourStringDateParameter"};
object retVal =
mm.InvokeMember("GetDataSet",
BindingFlags.Default |
BindingFlags.InvokeMethod,
null,
null,
arguments);DataSet ds = (DataSet)retVal;see
http://www.dotnetextreme.com/code/DynaInvoke.asp
using System;
using System.Data;namespace Module
{
/// <summary>
/// Summary description for Class1.
/// </summary>
public class DataSetPortal
{
public DataSetPortal()
{
//
// TODO: 在此处添加构造函数逻辑
//
} public static DataSet GetDataSet()
{
return new DataSet();
}
}
}//调用模块
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Reflection;namespace DynamicLoadAssembly
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null; public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent(); System.Reflection.Assembly Asm=System.Reflection.Assembly.LoadFrom("Module.dll");
Type typeDataSetPortal = Asm.GetType("Module.DataSetPortal");
object retVal =
typeDataSetPortal.InvokeMember("GetDataSet",
BindingFlags.Default |
BindingFlags.InvokeMethod,
null,
null,
null);
DataSet ds = (DataSet)retVal; //
// TODO: Add any constructor code after InitializeComponent call
//
} /// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} #region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.Size = new System.Drawing.Size(300,300);
this.Text = "Form1";
}
#endregion /// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
}
}