在 C# 中,我想用签名调用外部 DLL 中的方法bool IsValid(string)
,但 dll 的名称来自作为字符串的输入。
我怎样才能:
调用外部方法?
实现
IsValid
方法?
对于第一个问题,我找到了这个答案:
string path = ApplicationMapPath+ objDLLName + ".dll";
System.Reflection.Assembly a = System.Reflection.Assembly.LoadFile(path);
Type t = a.GetType("<namespace>.<Class>");
object instance = a.CreateInstance("<namespace>.<Class>");
MethodInfo m = t.GetMethod("<FuncName>");// Call the method
object res = m.Invoke(instance, new object[] { txtBox.Text }); // Get the result here
我能想到的唯一方法是使用 Win32 库和特殊的 LoadLibrary API 函数。这是一个可以帮助您入门的链接:
http://www.codeproject.com/Articles/27298/Dynamic-Invoke-C-DLL-function-in-C