首页
技术库|站长工具|技术手册|字体库|知识点词汇表| 联系我们|
打开本页的html静态页面
 

主菜单

文章分类

.: .Net技术 .: .Net分析与设计 .: c#中的反射代码实例讲解(转载)

  • 全文内容
  • 发表评论
  • 文章点评
  • 文章附件
  • Email文章
  • 打印文章

c#中的反射代码实例讲解(转载)

点击次数:1429 创建日期:12-26-2007 录入:cn-web.com 字体:[ ] 点评:


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 应用于反射的例子
 public void test1()
   {
    System.Reflection.Assembly ass;
     Type type ;
    object obj;
     try
     {
      ass = System.Reflection.Assembly.Load("TestReflect");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;
    }
   }


请文明参与讨论,禁止漫骂攻击。
评论总数:0 [ 查看全部 ] 网友评论
此文章还没有任何评论!
(+5分)
(+4分)
(+3分)
(+2分)
(+1分)
此内容无附件
网站地图 - 知识词汇 - 全文检索 - 广告服务 - 帮助中心 - 联系我们
.:www.cn-web.com
网站技术开发联盟之WEB开发技术知识库
联系人:老韩(QQ:5679551)
晋ICP备07003487号