private object Invoke(string lpFileName, string Namespace, string ClassName, string lpProcName)
{
try
{ // 载入程序集
Assembly MyAssembly = Assembly.LoadFrom(lpFileName);
Type[] type = MyAssembly.GetTypes();
foreach (Type t in type)
{// 查找要调用的命名空间及类
if (t.Namespace == Namespace && t.Name == ClassName)
{// 查找要调用的方法并进行调用
MethodInfo m = t.GetMethod(lpProcName);
if (m != null)
{
object o = Activator.CreateInstance(t);
string s = (string)m.Invoke(o, null);
return m.Invoke(o,null);
}
else MessageBox.Show(" 装载出错 !");
}
}
}//try
catch (System.NullReferenceException e)
{
MessageBox.Show(e.Message);
}//catch
return (object)0;
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(Invoke("DataLogic.exe", "DataLogic", "Form1", "getArray").ToString());
}
这个容易,点击 文件-新建-项目 ,然后选择类库,建好一个类库之后你可以新建一个类文件,然后把你的方法写进去,编译通过之后去项目的类库名文件夹DeBug文件夹里你会看到一个类库名.dll 的文件,这个就是你想要的,然后再其他项目中使用时,在项目上右键选择添加引用-- 选择浏览,然后选择路径把那个DLL文件导入进来就可以了,在要使用的页面 用using 引用一下就OK了。
反射,网上搜搜,一把一把的……
比如 http://blog.csdn.net/jamex/archive/2009/03/25/4024043.aspx
里面是load一个exe,和load dll一样的。
反射~~
用到:
Assembly.LoadFrom方法
Type.GetMethods方法
MethodInfo.Invoke方法~~
或者直接用Type.InvokeMember方法。
查下MSDN就可以了。