反射笔记

网上的众多关于反射的文章 都是 一开始 就之乎者也

不是Assembly就是程序集

看的哥这菜鸟 。。。。。。晕的,,,,,,那个汗

先上简单的 ,运行下,一般人 先看出到 反射 的一些小用法了

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;

namespace ReflectionExample
{
class ReflTest1
{
private string _prop1;

public string Prop1
{
get { return _prop1; }
set { _prop1 = value; }
}
public void Write1(string strText)
{
Console.WriteLine(
"111111:"+strText);
}
public void Write2(string strText)
{
Console.WriteLine(
"222:" + strText);
}
public void Write3(string strText)
{
Console.WriteLine(
"333332:" + strText);
}
public static void Write4(string strText)
{
Console.WriteLine(
"静态方法:"+strText);

}

}
class Program
{
static void Main(string[] args)
{
string strText = "abcd";
//定义类型用于成员的获取
BindingFlags flags=(BindingFlags.NonPublic|BindingFlags.Public|BindingFlags.Static|BindingFlags.Instance|BindingFlags.DeclaredOnly);
Type t
= typeof(ReflTest1);
//获得所有方法
MethodInfo[] mi = t.GetMethods(flags);
//创建要反射的 类型的实例
Object obj = Activator.CreateInstance(t);
//遍历所有方法 找到开头为write的方法 并执行他
foreach (MethodInfo m in mi)
{
if (m.Name.StartsWith("Write"))
{
m.Invoke(obj,
new object[] { strText});
}
}
}
}
}

posted @ 2011-04-09 18:59  张土土  阅读(168)  评论(0编辑  收藏  举报