c#中用反射的方式实例化对象
定义一个类:
namespace Example
{
public class ExampleClass
{
public int iID = 0;
public string strName = "";
public ExampleClass()
{
iID = 1;
strName = "Example";
}
public ExampleClass(int ID,string Name)
{
iID = ID;
strName = Name;
}
}
}
实例化对象:需要引用 useing System.Reflection;
//通过类名获取类的类型
Type tp = Type.GetType("Example.ExampleClass");
//需要带上名字空间
//不带参数的情况--------------------
//获取类的初始化参数信息
ConstructorInfo ct1 = tp.GetConstructor(System.Type.EmptyTypes);
//调用不带参数的构造器
ExampleClass Ex1 = (ExampleClass)ct1.Invoke(null);
MessageBox.Show("ID = " + Ex1.iID.ToString() + ";
Name = " + Ex1.strName);
//将输出: ID = 1;
Name = Example
//带参数的情况
//定义参数类型数组
Type[] tps = new Type[2];
tps[0] = typeof(int);
tps[1] = typeof(string);
//获取类的初始化参数信息
ConstructorInfo ct2 = tp.GetConstructor(tps);
//定义参数数组
object[] obj = new object[2];
obj[0] = (object)100;
obj[1] = (object)"Param Example";
//调用带参数的构造器
ExampleClass Ex2 = (ExampleClass)ct2.Invoke(obj);
MessageBox.Show("ID = " + Ex2.iID.ToString() + ";
Name = " + Ex2.strName);
//将输出: ID = 100;
Name = Param Example
【c#中用反射的方式实例化对象】 转自:http://imay.blog.bokee.net/bloggermodule/blog_printEntry.do?id=503644
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量