c# 反射使用实例

转载 2007年09月18日 13:54:00
 
1 创建用于反射使用的DLL
新建一个C#类库项目,拷贝源代码如下,编译生成DLL(假如DLL的文件名是TestReflect.dll)
 using System;
 
namespace Webtest
 
{
  
/**//// <summary>
  
/// ReflectTest 的摘要说明。
  
/// </summary>

  public class ReflectTest
  
{
  
public ReflectTest()
  
{}
  
public string WriteString(string s)
  
{
   
return "欢迎您," + s;
  }

  
/**//// <summary>
  
/// dsajkjflasjdfalksdjfaskfd
  
/// </summary>
  
/// <param name="s"></param>
  
/// <returns></returns>

  public static string WriteName(string s)
  
{
   
return "欢迎您光临," + s;
  }

  
public string WriteNoPara()
  
{
   
return "您使用的是无参数方法";
  }

 }

}

2 应用于反射的例子

ASPNET页面中加入以下函数:

 public void test1()
 
{
    System.Reflection.Assembly ass;
    Type type ;
    
object obj;
    
try
    
{
     ass 
= System.Reflection.Assembly.LoadFile(@"d:TestReflect.dll");
     type 
= ass.GetType("Webtest.ReflectTest");//必须使用名称空间+类名称
     System.Reflection.MethodInfo method = type.GetMethod("WriteString");//方法的名称
     obj = ass.CreateInstance("Webtest.ReflectTest");//必须使用名称空间+类名称
    string s = (string)method.Invoke(obj,new string[]{"jianglijun"}); //实例方法的调用
    Response.Write(s+"<br>");
    method 
= type.GetMethod("WriteName");//方法的名称
    s = (string)method.Invoke(null,new string[]{"jianglijun"}); //静态方法的调用
    Response.Write(s+"<br>");
    method 
= type.GetMethod("WriteNoPara");//无参数的实例方法
    s = (string)method.Invoke(obj,null);
    Response.Write(s
+"<br>");
    method 
= null;
   }

   
catch(Exception ex)
   
{
    Response.Write(ex
+"<br>");
   }

   
finally
   
{
    ass 
= null;
    type 
= null;
    obj 
= null;
   }

  }


 

相关文章推荐

C# 反射通过类名实例化类

在面向对象编程的时候,会遇到这样的问题,一个父类有多个子类,需要创建一个父类的对象,再后面根据条件去把该对象实例化具体的某个子类,然后进行操作。当然用if else 或者switch来做也可以,但是后...

C#反射概念以及实例详解

C#反射的入门学习首先要明白C#反射提供了封装程序集、模块和类型的对象等等。那么这样可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中...
  • wyh0318
  • wyh0318
  • 2012年09月11日 08:28
  • 222

c# 类反射(type.gettype/typeof)和实例化

在开发中,经常会遇到这种情况,在A.dll中需要反射B.dll中的类型,如果稍不注意,就会产生运行时错误。关于跨程序集的反射,记住两点就可以: (1)如果使用typeof,编译能通过,则跨程序集的反...

c# 类的反射实例 (GetType().Invoke().GetMethod().CreateInstance())

转载:http://www.cnblogs.com/chenwei19/archive/2009/02/04/1384034.htmlClass1和Form 窗体在同一个命名空间using Syste...

C# 反射详解:定义、创建对象、调用实例方法及静态方法

C# 反射详解 定义 动态创建对象及调用实例方法 1、反射的定义及功能介绍:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会...

C#反射概念以及实例详解

http://blog.sina.com.cn/s/blog_3e6cb7680100lg1h.html   C#反射的入门学习首先要明白C#反射提供了封装程序集、模块和类型的对象等等...
  • plean
  • plean
  • 2012年04月14日 10:43
  • 444

C#反射概念以及实例详解

C#反射的入门学习首先要明白C#反射提供了封装程序集、模块和类型的对象等等。那么这样可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中...

C#反射概念以及实例详解

C#反射的入门学习首先要明白C#反射提供了封装程序集、模块和类型的对象等等。那么这样可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中...

C#反射实例讲解

1 创建用于反射使用的DLL 新建一个C#类库项目,拷贝源代码如下,编译生成DLL(假如DLL的文件名是TestReflect.dll) 1using System;  2  3namespa...

C#反射实例讲解

C#反射实例讲解
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c# 反射使用实例
举报原因:
原因补充:

(最多只允许输入30个字)