急!知道DLL中函数名字的字符串,如何调用到DLL中对应的函数?
一个DLL,内有数百个函数,例子如下:
namespace Cao
{
public class Zheng
{
public int Bi(string mao, ref double shui)
{
MessageBox.Show(mao);
shui = 123.0;
return 0;
}
}
}
Bi为其中一个函数。
我要在我的主程序里调用Bi,而我只知道 "Bi "这个字符串,改如何调用到?
主程序例子:
namespace ol2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Cao.Zheng z = new Cao.Zheng();
double v = 0;
int ret = z.Bi( "qaz ",ref v);
MessageBox.Show( "v= " + v.ToString() + ", ret= " + ret.ToString());
}
private void button2_Click(object sender, EventArgs e)
{
Cao.Zheng z = new Cao.Zheng();
string fnName = "Bi ";
//How to call z.Bi() ???????????????????
}
}
}
button1的方式当然没有问题,但在button中改如何做?
[解决办法]
Cao.Zheng z = new Cao.Zheng();
string fnName = "Bi ";
//How to call z.Bi() ???????????????????
-------------------------
MethodInfo mi = z.GetType().GetMethod(fnName, BindingFlags.Instance| BindingFlags.Public);
if (mi != null)
{
mi.Invoke(z, null);
}
[解决办法]
通过反射,来进行,对DLL 的动态加载,和调用
[解决办法]
http://www.cnblogs.com/light169/archive/2007/04/09/705434.html
[解决办法]
参考PETSHOP DAL层
[解决办法]
路過……
找一下反射相關的資料。
[解决办法]
mark
[解决办法]
反射就OK了
[解决办法]
反射好好看看吧