zoukankan      html  css  js  c++  java
  • C#反射调用小DEMO

    程序集的源代码:

    namespace DesignMode
    {
     class IOCTest
        {
            public void TestO()
            {
                Console.WriteLine("O方法");
            }
    
            public void TestA(string strA) 
            {
                string res = "A方法||";
                Console.WriteLine(res+strA);
            }
    
            public string TestB() 
            {
                string res="B方法";
                Console.WriteLine(res);
                return res;
            }
    
            public int TestC(int num, string strC) 
            {
                if (num == 0)
                {
                    Console.WriteLine("C方法的C#||" + strC);
                    return 0;
                }
                else
                {
                    Console.WriteLine("C方法的JAVA||" + strC);
                    return 1;
                }
            }
        }
    )

    反射调用源代码:

      ////无参
                //var a = Assembly.Load("DesignMode").CreateInstance("DesignMode.IOCTest").GetType().GetMethod("TestO");
                ////第一个参数表示该方法所在类,第二个参数表示该方法的参数
                //a.Invoke(Assembly.Load("DesignMode").CreateInstance("DesignMode.IOCTest"), null);
    
                ////一个参数
                //var a1 = Assembly.Load("DesignMode").CreateInstance("DesignMode.IOCTest").GetType().GetMethod("TestA");
                ////第一个参数表示该方法所在类,第二个参数表示该方法的参数
                //a1.Invoke(Assembly.Load("DesignMode").CreateInstance("DesignMode.IOCTest"), new object[] { "百事可乐赢大奖" });
    
                ////两个参数有返回值
                //var a2 = Assembly.Load("DesignMode").CreateInstance("DesignMode.IOCTest").GetType().GetMethod("TestC");
                ////第一个参数表示该方法所在类,第二个参数表示该方法的参数
                //var res = a2.Invoke(Assembly.Load("DesignMode").CreateInstance("DesignMode.IOCTest"), new object[] {0, "百事可乐赢大奖" });
    
                //无参有返回值
                var a3 = Assembly.Load("DesignMode").CreateInstance("DesignMode.IOCTest").GetType().GetMethod("TestB");
                //第一个参数表示该方法所在类,第二个参数表示该方法的参数
                var res1 = a3.Invoke(Assembly.Load("DesignMode").CreateInstance("DesignMode.IOCTest"), new object[] { });
  • 相关阅读:
    Python装饰器
    Python函数学习
    delphi 面向对象实用技能教学一(递归)
    delphi 给EXE文件增加区段
    delphi 微信(WeChat)多开源代码
    dephi FillChar 的几种写法
    delphi 线程教学第七节:在多个线程时空中,把各自的代码塞到一个指定的线程时空运行
    delphi 线程教学第六节:TList与泛型
    delphi 线程教学第五节:多个线程同时执行相同的任务
    delphi 线程教学第四节:多线程类的改进
  • 原文地址:https://www.cnblogs.com/llcdbk/p/5446721.html
Copyright © 2011-2022 走看看