C#反射怎么实现

c#
749
2023/7/13 9:53:17
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

C#反射可以通过System.Reflection命名空间中的类和方法来实现。以下是一个简单的示例:

首先,你需要引用System.Reflection命名空间:

using System.Reflection;

然后,你可以使用Type类来获取类型的信息:

Type type = typeof(MyClass);

接下来,你可以使用Type类的方法来获取类型的成员信息,比如字段、属性、方法等:

// 获取字段信息
FieldInfo[] fields = type.GetFields();
// 获取属性信息
PropertyInfo[] properties = type.GetProperties();
// 获取方法信息
MethodInfo[] methods = type.GetMethods();

你也可以使用Type类的方法来创建类型的实例、调用方法和访问属性:

// 创建类型的实例
object instance = Activator.CreateInstance(type);
// 调用方法
MethodInfo method = type.GetMethod("MyMethod");
method.Invoke(instance, null);
// 访问属性
PropertyInfo property = type.GetProperty("MyProperty");
property.SetValue(instance, "new value");

除了获取类型的成员信息,你还可以使用Type类的方法来获取和设置类型的特性:

// 获取类型的特性
MyAttribute attribute = type.GetCustomAttribute<MyAttribute>();
// 设置类型的特性
type.SetCustomAttribute(new MyAttribute());

这只是C#反射的一小部分功能,你还可以使用反射来实现更复杂的操作,比如动态加载程序集、创建泛型类型等。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: C#随机数在统计抽样中的应用