类别:程序开发

日期:2024-03-20 浏览:1247 评论:0

e5cf8107-7f76-44af-903a-51b06a3ca9fa.jpg

类库工程

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
作者授权:除特别说明外,本文由 零一 原创编译并授权 零一的世界 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。
 您阅读本篇文章共花了: 

 可能感兴趣的文章

评论区

发表评论 / 取消回复

必填

选填

选填

◎欢迎讨论,请在这里发表您的看法及观点。

最新留言