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来做也可以,但是后...
  • yiershan1314
  • yiershan1314
  • 2016年07月15日 11:23
  • 4516

如何通过C#.NET中的反射机制来创建C#.NET泛型类的实例,并调用其方法??

如何通过C#.NET中的反射机制来创建C#.NET泛型类的实例,并调用其方法?
  • phker
  • phker
  • 2016年06月21日 08:37
  • 1110

C# ORM中反射与泛型的交叉应用 - 动态创建泛型实例并为其赋值

好久没有写文章了,终于找到工作,抽空写一下冒个泡。问题最近遇到一个这样 ORM 的问题,一个返回类型为 List 泛型方法中,需要做到根据条件访问数据库,并且把得到的结果存入 List 中返回。由于...
  • qq_21265915
  • qq_21265915
  • 2017年07月19日 09:14
  • 602

unity3D C#的反射使用场景

C#的反射理解以及案例解释
  • u011611902
  • u011611902
  • 2015年10月17日 07:38
  • 2788

android中反射技术使用实例

在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据...
  • DQ1005
  • DQ1005
  • 2016年05月22日 14:36
  • 2041

C# 入门(19) 反射(reflection)和特性(attribute)

C#的反射和特性
  • l773575310
  • l773575310
  • 2017年05月04日 10:59
  • 400

C#中使用反射的优缺点

优点:             反射提高了程序的灵活性和扩展性,降低耦合性,提高自适应能力。它允许程序创建和控制任何类的对象,无需提前硬编码目标类;   缺点:            1、性能问题:使...
  • SpringFileld
  • SpringFileld
  • 2014年01月01日 12:30
  • 3462

【C#】:浅谈反射机制

什么是反射?         反射提供了封装程序集、模块和类型的对象(Type 类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代...
  • u010929604
  • u010929604
  • 2015年08月06日 08:35
  • 5263

ulua中lua代码使用反射调用c#详解

1、官方解释 2、代码层分析 2.1 官方脚本 2.2 语句 luanet.load_assembly(‘UnityEngine’)解析LuaState ...
  • wdsdsdsds
  • wdsdsdsds
  • 2017年01月13日 16:33
  • 1604

C# 反射调用带参数的重载的泛型方法

C# 反射调用带参数的重载的泛型方法。 以及调用时抛出:不能对 ContainsGenericParameters 为 True 的类型或方法执行后期绑定操作异常的解决办法。 话不多说,上代码!...
  • CommandBaby
  • CommandBaby
  • 2016年04月29日 10:28
  • 2807
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c# 反射使用实例
举报原因:
原因补充:

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