溫馨提示×

C#反射怎么實現

c#
小億
148
2023-07-22 09:53:17
欄目: 編程語言

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#反射的一小部分功能,你還可以使用反射來實現更復雜的操作,比如動態加載程序集、創建泛型類型等。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女