类别:程序开发
日期:2024-03-20 浏览:1247 评论:0
类库工程
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ClassLibrary1 { public class Class1 { private string strName; public Class1() { strName = ""; } public string test1() { return "test1"; } public string GetValue(string nCount) { return string.Format("Count is {0}!", nCount); } public static string GetNewValue(int nCount) { return string.Format("New count is {0}!", nCount); } public string Name { get { return strName; } set { strName = value; } } } }
调用DLL的.Net Framework 控制台工程:
// 加载 TestDLL.dll 程序集 Assembly assembly = Assembly.LoadFrom("ClassLibrary1.dll"); // 获取 TestDLL.Class1 类型 Type type = assembly.GetType("ClassLibrary1.Class1"); // 创建 TestDLL.Class1 的实例 object obj = Activator.CreateInstance(type); // 获取 Test 方法的 MethodInfo MethodInfo method = type.GetMethod("GetValue"); // 调用 Test 方法 string ms = method.Invoke(obj, null).ToString(); string ms1 = method.Invoke(obj, new object[] { "aabc" }).ToString();
封装类文件 :
using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace WpfAppManage { public static class Comm { public static string InmportDLL(string dllUrl, string dllType, string func, object[] parms) { Assembly assembly = Assembly.LoadFrom(dllUrl); // 获取 TestDLL.Class1 类型 Type type = assembly.GetType(dllType); // 创建 TestDLL.Class1 的实例 object obj = Activator.CreateInstance(type); // 获取 Test 方法的 MethodInfo MethodInfo method = type.GetMethod(func); // 调用 Test 方法 string ms = method.Invoke(obj, parms).ToString(); return ms; } } }
调用方式:
string msg = Comm.InmportDLL("ClassLibrary1.dll", "ClassLibrary1.Class1", "GetValue", null);
本文标题:C#动态调用DLL
本文链接:https://vtzw.com/post/1117.html
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。
发表评论 / 取消回复