反射调用类库
作者:admin 来源: 2022/12/9 15:01:24

    创建一个类库项目(testLib),新增一个类(Class1),最后生成dll文件(testLib.dll)

    函数start在磁盘I中生成1.txt文件,在其中写入当前时间。

    函数start2在磁盘I中生成1.txt文件,在其中写入调用方传递过来的文本。

namespace testLib
{
    public class Class1
    {
        public Class1()
        { 
        }
        public void start()
        {
            File.WriteAllText(@"I:\1.txt", DateTime.Now.ToString());
        }

        public void start2(string msg)
        {
            File.WriteAllText(@"I:\1.txt", msg);
        }
    }
}

    创建控制台项目(test),主函数中反射testLib.dll,并调用其中的函数(start)

using System.Reflection;

namespace test
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Assembly assembly = Assembly.LoadFrom($"{AppDomain.CurrentDomain.BaseDirectory}/testLib.dll");
            assembly = AppDomain.CurrentDomain.Load(assembly.FullName);
            object obj = assembly.CreateInstance("testLib.Class1");
            MethodInfo method = obj.GetType().GetMethod("start2");
            method.Invoke(obj, null);

            Console.WriteLine("Hello, World!");
        }
    }
}
    传参调用start2:
            MethodInfo method = obj.GetType().GetMethod("start2");
            object[] param = new object[1];
            param[0] = "msg";
            method.Invoke(obj, param);

下载码是:C71272E332,下载码是啥?如何下载=》点击查看

称      呼:
联系方式:
您的评论:
技术支持:l.w.dong@qq.com www.luweidong.cn
广州市   wx:lwdred
Copyright © 2014 三味书屋 All Rights Reserved
技术支持:l.w.dong@qq.com  sitemap xml  sitemap html

粤公网安备44010602011869号

粤ICP备13031080号-1