.NET反射实例
在上篇《程序集和反射(一)》中,我们重点讲解了“程序集”和反射的基本概念,原理等。有的读者可能会认为这些枯燥的理论没啥用,其实不然。据我的经历,面试中问到的很多。能够透彻的理解“程序集,反射等”,而且能在日常开发中灵活的运用反射,是一个优秀的.NET开发人员的重要参考标准。呵呵。
本节中,我将通过具体的实例。教大家如何在)C#).NET开发中使用反射。
首先,我新建一个普通的类库项目。在该项目的测试类中,定义好 属性、静态方法、实例方法、无参方法等... 代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ReflectorTest
{
class Test
{
private string name;
public string Name { get; set; }
/// <summary>
/// 静态方法
/// </summary>
/// <returns></returns>
public static string staticMethod(string name)
{
return name;
}
/// <summary>
/// 实例方法
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public string sayHello(string name)
{
return "hello:" + name;
}
/// <summary>
/// 无参的方法
/// </summary>
/// <returns></returns>
public string noParm()
{
return "I'M A noParm Method";
}
}
}
上面的类库项目,编译通过后,会生成一个DLL文件。好的,我们就是要通过“反射”技术,来尝试着看看这个DLL里面包含的相关元素信息,做一些模拟的操作等。
有点类似于“反编译”吧?呵呵。其实著名的Reflector.NET反编译工具,就是利用反射的原理。还有Microsoft Visual Studio 中的调试,背后也是利用反射技术..
具体的使用代码如下(都有详细的使用说明,注释。读者可以一目了然):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
&nb
相关新闻>>
- 发表评论
-
- 最新评论 更多>>