C#动态方法调用
2007-07-07 14:48
369 查看
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);
}
}
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);
}
}
相关文章推荐
- C#反射动态调用窗体,动态实例化窗体的方法
- C#反射动态调用dll中的方法,并返回结果
- C#,动态加载DLL,通过反射,调用参数,方法,窗体
- C#动态方法调用
- c#动态调用Webservice的两种方法实例
- .Net下采用GET/POST/SOAP方式动态调用WebService的简易灵活方法(C#)
- C#动态调用webservice方法
- C#动态调用泛型类、泛型方法
- C#实现动态灵活调用业务方法的机制
- .Net下采用GET/POST/SOAP方式动态调用WebService的简易灵活方法(C#)
- C#反射:获取自定义类,动态调用方法
- C#中Winform动态调用Webservice的方法(转)
- C#动态调用WebService方法
- C#动态调用webservice的方法
- C#中Winform动态调用Webservice的方法
- C#动态调用Web服务的3种方法
- c# 创建DLL,动态加载dll文件,并调用其中的方法(转自CFEI.NET)
- C#动态调用Web服务的3种方法
- c#动态加载dll并调用dll中类的方法
- .Net下采用GET/POST/SOAP方式动态调用WebService的简易灵活方法(C#)