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[] { });
  • 相关阅读:
    Scala: 包对象
    云服务使用技巧
    leetcode上一些常见的链表问题
    数据挖掘的价值
    leetcode上的一些分治算法
    双指针的应用
    KNN算法
    线性回归
    leetcode上的一些单链表
    leetcode上的一些栈、队列问题
  • 原文地址:https://www.cnblogs.com/llcdbk/p/5446721.html
Copyright © 2011-2022 走看看