C# 反射的简单用法
- 新建两个项目:类库(Model)和控制台应用程序(ReflectTest)。
- 在【Model】中添加一个类【User】:
namespace Model
{
public class User
{
public string Show()
{
return "Test Reflect.";
}
}
} - 编译生成【Model】,并把生成的dll拷贝到【ReflectTest】项目下的【\bin\Debug\】文件夹里面。
- 实现反射:
using System;
using System.Reflection; namespace ReflectTest
{
class Program
{
static void Main(string[] args)
{
Assembly assembly = Assembly.Load("Model"); // 1. 动态加载dll
Type userType = assembly.GetType("Model.User"); // 2. 找到具体类型
object instance = Activator.CreateInstance(userType); // 3. 给类型创建一个对象 // 解析dll
{
// 获取程序集中的所有类型
foreach (Type type in assembly.GetTypes())
{
Console.WriteLine(type.Name);
} // 获取类型中所有方法
foreach (MethodInfo method in userType.GetMethods())
{
Console.WriteLine(method.Name);
}
} MethodInfo showMethod = userType.GetMethod("Show"); // 4. 获取指定方法
var result = showMethod.Invoke(instance, null); // 5. 方法调用
Console.WriteLine(result); Console.ReadLine();
}
}
}
C# 反射的简单用法的更多相关文章
- 【C#学习笔记】反射的简单用法
常见的使用反射的场景: 程序在运行时动态地访问类的成员,如获得类的变量.方法. 例如:用反射给本类的变量赋值. public class Student{ public string studentN ...
- 【.Net 学习系列】-- 反射的简单用法
新建两个项目:类库(Model)和控制台应用程序(ReflectTest). 在[Model]中添加一个类[User]: namespace Model { public class User { p ...
- Java反射的简单入门
1.Class的简单介绍 Class类的类表示正在运行的Java应用程序中的类和接口. 枚举是一种类,一个注解是一种接口, 每个数组也属于一个反映为类对象的类,该对象由具有相同元素类型和维数的所有数组 ...
- C#反射的简单示例
反射(Reflection)可以在运行时获 得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的名称.限定符和参数等反正说白了就 ...
- CATransition(os开发之画面切换) 的简单用法
CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...
- jquery.validate.js 表单验证简单用法
引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...
- NSCharacterSet 简单用法
NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...
- 通过java反射实现简单的关于MongoDB的对象关系映射(ORM).
通过阅读MongoDB 3.2.1的官方文档中关于java 编程发现最新的文档并没有实现对对象到Document的映射,所以自己有了利用反射实现简单的关系映射. 1.定义抽象类:AbstractMo ...
- [转]Valgrind简单用法
[转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...
随机推荐
- 加快VisualStudio的开发速度--VS的一些开发技巧
最近不得不使用VisualStudio来进行一些开发,用习惯了Eclipse,感觉VS很难上手,不过通过google,把VS进行Eclipse化,顺便记录下来,以防忘记. 1)显示文字的自动完成. 改 ...
- 关于开源框架GPUImage 的简单说明
GPUImage是一个非常棒的图像处理的开源库,里面提供了非常非常多的滤镜效果来加工图片. 不过就是因为太多效果了,而且对于程序员来说,那么多效果并不清楚知道要用那一个.于是我就使用提供的默认值,加上 ...
- ASP.NET MVC3学习心得-----表单和HTML辅助方法
5.1表单的使用 5.1.1 action和method的特性 表单是包含输入元素的容器,包含按钮.复选框.文本框等元素,表单的这些输入元素使得用户能够向页面中输入信息,并把输入信息提交给服务器.A ...
- zz-rtl8188eu的linux-usb-wifi调试及驱动编译150210
//zz//####################################################################### zz-rtl8188eu的linux-usb ...
- MongoDB之三(高级操作 聚合、游标)
一: 聚合 常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce. <1> count count是最简单,最容易,也是最常用的聚合工 ...
- FFT矩阵
举个例子: \[{F_4}=\left[{\begin{array}{*{20}{c}}1&1&1&1\\1&i&{-1}&{-i}\\1&{- ...
- JZ2440开发笔记(5)——通过按键点亮LED
在JZ2440中,点亮LED就是给LED的控制位设置为输出,数据位设置为低电平,而通过按键点亮LED,就需要将按键对应的控制位设置为输出. 下面是JZ2440的3个LED电路图: 下面是JZ2440的 ...
- tomcat 服务器全解
①B/S.C/S比较 ⑴C/S C/S结构即客户端/服务器(Client/Server),例如QQ: 需要编写服务器端程序,以及客户端程序,例如我们安装的就是QQ的客户端程序: 缺点:软件更新时需要同 ...
- 引用类型传递 ListView展示数据
教师评分项目总结 //创建一个SE员工类 1.1 //首先分析项目 * 01.我需要在LIstView控件中显示三个员工的信息 * 那么可以定义一个长度为3的数组来承载要显示的数据 * 0 ...
- linux下的rbenv和rails安裝
今天是周一,我到新公司的第14天,今天继续linux下ruby和rails环境变量的配置. 首先碰到的问题是 主要看ubuntu下安装rbenv,ruby,rails开发环境, http://blog ...