• C#动态方法调用



     

    Dynamic Method Invocation

    One very useful feature related to Reflection is the ability to create objects dynamically and call methods on them.
    note : Class1.cs has methods which will be dynamically invoked at runtime from the DynaInvoke.cs

    Class1.cs

    using System;
    class Class1{
           public static String method1()
           {
               return "I am Static method (method1) in class1";
           }
           public String method2()
           {
               return "I am a Instance Method (method2) in Class1";
           }
           public String method3(String s)
           {
              return "Hello " + s;
           }
    }
    save this file as Class1.cs and Compile c:/>csc /t:library Class1.cs

    DynaInvoke.cs

    using System;
    using System.Reflection;
    class DynamicInvoke
    {
    public static void Main(String [] args)
    {

    String path = "Class1.dll"
    Assembly a = Assembly.Load(path);

    //Invoking a static method
    Type mm = a.GetType("Class1");
    String i = (String) mm.InvokeMember ("method1",BindingFlags.Default | BindingFlags.InvokeMethod,null,null,new object [] {}); Console.WriteLine(i);

    //Invoking a non-static method
    object o = Activator.CreateInstance(mm);
    i = (String) mm.InvokeMember("method2",BindingFlags.Default | BindingFlags.InvokeMethod,null,o,new object [] {});
    Console.WriteLine(i);

    //Invoking a non-static method with parameters
    object [] par = new object[] {"kunal"};
    i = (String) mm.InvokeMember("method3",BindingFlags.Default | BindingFlags.InvokeMethod,null,o,par);
    Console.WriteLine(i);
    }
    }

    save this file as DynaInvoke.cs and Compile c:/>csc DynaInvoke.cs and run C:\>DynaIn

     

  • 相关阅读:
    Druid 配置_DruidDataSource参考配置
    Druid 配置 wallfilter
    Druid 配置_配置WebStatFilter
    Druid 配置_StatViewServlet配置
    Druid 配置_StatFilter
    Druid数据库连接池使用
    Spring泛型依赖注入
    java计算代码执行时间
    模板方法在Spring事务中的应用
    maven,阿里云国内镜像,提高jar包下载速度
  • 原文地址:https://www.cnblogs.com/chance/p/478172.html
Copyright © 2020-2023  润新知