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:\>DynaInvoke

时间: 2024-10-31 10:27:41

C#动态方法调用的相关文章

webwork的动态方法调用(DMI)的问题?

问题描述 webwork的动态方法调用(DMI)的问题? 比如aaa!input.action的方法跳转页面,页面中有判断一个变量名是name的值,但是发现name是有值的,照道理这个方法跳转并不经过自己定义的action变量不应该会有值,不知道这个值是怎么来的,也就是动态方法调用的时候具体经过了哪些方法最后跳转页面?之前一直在用这个系统从来没发现过这个问题,最近才发现,而且代码已经很久没更新了不知道为什么现在会出现这个问题而以前没有?另外后来换了一个变量名就没这个问题了,不知道是不是变量名和系

Action动态方法调用

问题描述 现在有这样一个需求1级菜单是部门,2级菜单是根据部门的id获取到的条目.利用Struts2的动态方法调用.然后传一个部门id给这个方法,让Action的这个方法可以根据id获取到该部门下的条目.在前台调用EditFundAccount!loadFundAccountNameByOrgan如何给这个id传参Action方法实现如下:public String loadFundAccountNameByOrgan(Long id){ //TODO} 解决方案 总觉得方法定义错误action

struts中动态方法调用使用通配符_java

一.DMI动态方法调用的其中一种改变form表单中action属性的方式已经讲过了.还有两种,一种是改变struts.xml配置文件中action标签中的method属性,来指定执行不同的方法处理不同的业务逻辑:另外一种是使用通配符的方式.改变method属性的方式需要配置多个action,而且这些action定义的绝大部分都是相同的,所以这种定义是相当冗余的.因此,使用通配符就可以在一个action标签中代替多个逻辑处理的Action. 二.示范:(和之前的动态方法调用改变form表单acti

asp.net 中静态方法和动态方法调用的区别实例分析_实用技巧

复制代码 代码如下: //定义静态方法class SQLHelper       {        public static string aaa()        {            return "你好"               }    } 调用:SQLHelper.aaa(); // 类名.方法名 //定义动态方法class SQLHelper       {        public string aaa()        {            return

在JSP文件中的同一个form表单有多个用来提交表单值的按钮,用户可以通过不同的按钮提交表单,需要调用Action中的不同处理方法,该怎么使用动态方法调用?

问题描述 Action 问题补充:是struts2 怎么修改jsP动态form的action名称呀? 解决方案 function formSubmit(){document.form1.method="post"; var url ="<%=request.getContextPath()%>/hrt/chartSichuan.do?method=recordList"; document.form1.action= url; document.form

深入理解Javascript动态方法调用与参数修改的问题_javascript技巧

Javascript中可以对所传参数在函数内进行修改,如下 复制代码 代码如下: function func1(name) {     name = 'lily';     alert(name); } func1('jack');//输出lily 再看一个例子 复制代码 代码如下: function fun1(n) {     this.name = n; } function fun2(name) {     fun1.call(this,'lily');     alert(name);

Struts2.5使用通配符的方式实现动态方法调用报错

在Struts2.5使用通配符的方式实现动态方法调用时报错,困扰了好久... 代码如下 <package name="default" extends="struts-default" namespace="/">     </package>     <package name="users" namespace="/users" extends="default&

jquery中一个方法中动态生成的标签可以被其它方法调用吗

问题描述 jquery中一个方法中动态生成的标签可以被其它方法调用吗 解决方案 在控制台中动态引入jquery的方法jquery几个按钮同时调用一个方法 解决方案二: 可以,就根据div的id或者class找到他,$("#xxxx") 解决方案三: 你应该取得添加的那个JS对象 var dd = $('#attr_info').append(......) 然后再$(dd).eq(..).keyup 解决方案四: 看你代码append是动态添加的item吧..这样你的ajax都没添加到

DELPHI中的静态虚拟及动态方法函数的区别

1.静态方法是方法的缺省类型,对它就像对通常的过程和函数那样调用,编译器知道这些方法的地址,所以调用一个静态方法时它能把运行信息静态地链接进可执行文件,所以,静态方法速度最快,但它们却不能被覆盖来支持多态性. 2.虚拟方法和静态方法的调用方式相同.由于虚拟方法能被覆盖,在代码中调用一个指定的虚拟方法时编译器并不知道它的地址,因此,编译器通过建立虚拟方法表(VMT)来查找在运行时的函数地址.所有的虚拟方法在运行时通过VMT来高度,一个对象的VMT表中除了自己定义的虚拟方法外,还有它的祚的所有的虚拟