网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
.Net反射基础知识点
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式

  5、如何根据类型来动态创建对象

  System.Activator提供了方法来根据类型动态创建对象,比如创建一个DataTable:

  Type t = Type.GetType("System.Data.DataTable,System.Data,Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");

  DataTable table = (DataTable)Activator.CreateInstance(t);

  例二:根据有参数的构造器创建对象

  

      namespace TestSpace {

  public class TestClass

  {

  private string _value;

  public TestClass(string value) {

  _value=value;

  }

  }

  }

  …

  Type t = Type.GetType(“TestSpace.TestClass”);

  Object constructParms = new object {“hello”}; //构造器参数

  TestClass obj = (TestClass)Activator.CreateInstance(t,constructParms);

  …

  把参数按照顺序放入一个Object数组中即可

  6、如何获取方法以及动态调用方法

  

      namespace TestSpace

  {

  public class TestClass {

  private string _value;

  public TestClass() {

  }

  public TestClass(string value) {

  _value = value;

  }

  public string GetValue( string prefix ) {

  if( _value==null )

  return "NULL";

  else

  return prefix+" : "+_value;

  }

  public string Value {

  set {

  _value=value;

  }

  get {

  if( _value==null )

  return "NULL";

  else

  return _value;

  }

  }

  }

  }

  上面是一个简单的类,包含一个有参数的构造器,一个GetValue的方法,一个Value属性,我们可以通过方法的名称来得到方法并且调用之,如:

  

      //获取类型信息

  Type t = Type.GetType("TestSpace.TestClass");

  //构造器的参数

  object constuctParms = new object{"timmy"};

  //根据类型创建对象

  object dObj = Activator.CreateInstance(t,constuctParms);

  //获取方法的信息

  MethodInfo method = t.GetMethod("GetValue");

  //调用方法的一些标志位,这里的含义是Public并且是实例方法,这也是默认的值

  BindingFlags flag = BindingFlags.Public | BindingFlags.Instance;

  //GetValue方法的参数

  object parameters = new object{"Hello"};

  //调用方法,用一个object接收返回值

  object returnValue = method.Invoke(dObj,flag,Type.DefaultBinder,parameters,null);

 
  • 下一篇资讯: .Net中操作IIS的原理
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号