反射略識
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace 反射練習
{
class Program
{
static void Main(string[] args)
{
NewClassw nc = new NewClassw();
Type t = nc.GetType();
object obj = Activator.CreateInstance(t);//反射生成對象
//取得ID字段
FieldInfo fi = t.GetField("ID");
//給ID字段賦值
fi.SetValue(obj, "k001");
//取得MyName屬性
PropertyInfo pi1 = t.GetProperty("MyName");
//給MyName屬性賦值
pi1.SetValue(obj, "grayworm", null);
PropertyInfo pi2 = t.GetProperty("MyInfo");
pi2.SetValue(obj, "hi.baidu.com/grayworm", null);
//取得show方法
MethodInfo mi = t.GetMethod("show");
//調用show方法
mi.Invoke(obj, null);
ConstructorInfo[] ci = t.GetConstructors(); //獲取類的所有構造函數
foreach (ConstructorInfo c in ci) //遍歷每一個構造函數
{
ParameterInfo[] ps = c.GetParameters(); //取出每個構造函數的所有參數
foreach (ParameterInfo pi in ps) //遍歷並打印所該構造函數的所有參數
{
Console.Write(pi.ParameterType.ToString() + " " + pi.Name + ",");
}
Console.WriteLine();
}
//MethodInfo[] mis = t.GetMethods();
//foreach (MethodInfo mi in mis)//獲取public方法
//{
// Console.WriteLine(mi.ReturnType + " " + mi.Name);
//}
//FieldInfo[] fis = t.GetFields();
//foreach (FieldInfo fi in fis)//獲取屬性列表
//{
// Console.WriteLine(fi.Name);
//}
Console.ReadLine();
}
}
public class NewClassw
{
public NewClassw()
{
}
public NewClassw(int a)
{
}
public NewClassw(int a, int b)
{
}
public NewClassw(string a, int b)
{
}
public int Fun1(string wc)
{
return 0;
}
public void Fun2(int wc)
{
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace 反射練習
{
class Program
{
static void Main(string[] args)
{
NewClassw nc = new NewClassw();
Type t = nc.GetType();
object obj = Activator.CreateInstance(t);//反射生成對象
//取得ID字段
FieldInfo fi = t.GetField("ID");
//給ID字段賦值
fi.SetValue(obj, "k001");
//取得MyName屬性
PropertyInfo pi1 = t.GetProperty("MyName");
//給MyName屬性賦值
pi1.SetValue(obj, "grayworm", null);
PropertyInfo pi2 = t.GetProperty("MyInfo");
pi2.SetValue(obj, "hi.baidu.com/grayworm", null);
//取得show方法
MethodInfo mi = t.GetMethod("show");
//調用show方法
mi.Invoke(obj, null);
ConstructorInfo[] ci = t.GetConstructors(); //獲取類的所有構造函數
foreach (ConstructorInfo c in ci) //遍歷每一個構造函數
{
ParameterInfo[] ps = c.GetParameters(); //取出每個構造函數的所有參數
foreach (ParameterInfo pi in ps) //遍歷並打印所該構造函數的所有參數
{
Console.Write(pi.ParameterType.ToString() + " " + pi.Name + ",");
}
Console.WriteLine();
}
//MethodInfo[] mis = t.GetMethods();
//foreach (MethodInfo mi in mis)//獲取public方法
//{
// Console.WriteLine(mi.ReturnType + " " + mi.Name);
//}
//FieldInfo[] fis = t.GetFields();
//foreach (FieldInfo fi in fis)//獲取屬性列表
//{
// Console.WriteLine(fi.Name);
//}
Console.ReadLine();
}
}
public class NewClassw
{
public NewClassw()
{
}
public NewClassw(int a)
{
}
public NewClassw(int a, int b)
{
}
public NewClassw(string a, int b)
{
}
public int Fun1(string wc)
{
return 0;
}
public void Fun2(int wc)
{
}
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.