测试类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _20211009反射
{
class MyClass
{
string s1;
public string s2;
public string s3 = "abc";
int i1 { get; set; }
public int i2 { get; set; }
public int i3 { get; set; } = 10;
void f1()
{
}
public void f2()
{
}
private void f3()
{
}
}
}
反射得到类的元数据
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace _20211009反射
{
class Program
{
static void Main(string[] args)
{
MyClass my = new MyClass();
Type myT = my.GetType();
Console.WriteLine(myT.Namespace);
Console.WriteLine(myT.Name);
Console.WriteLine(myT.Assembly);
FieldInfo[] fields = myT.GetFields();
PropertyInfo[] propertys = myT.GetProperties();
MethodInfo[] methods = myT.GetMethods();
Console.WriteLine("字段---------------------------------------");
foreach (FieldInfo field in fields)
{
Console.Write(field + " ");
}
Console.WriteLine();
Console.WriteLine("属性---------------------------------------");
foreach (PropertyInfo property in propertys)
{
Console.Write(property + " ");
}
Console.WriteLine();
Console.WriteLine("方法---------------------------------------");
foreach (MethodInfo method in methods)
{
Console.Write(method + " ");
}
Console.ReadKey();
}
}
}