C#鍙嶅皠鎬庝箞瀹炵幇
C#鍙嶅皠鍙互閫氳繃System.Reflection鍛藉悕绌洪棿涓殑绫诲拰鏂规硶鏉ュ疄鐜般€備互涓嬫槸涓€涓畝鍗曠殑绀轰緥锛?/p>
棣栧厛锛屼綘闇€瑕佸紩鐢⊿ystem.Reflection鍛藉悕绌洪棿锛?/p>
using System.Reflection;
鐒跺悗锛屼綘鍙互浣跨敤Type绫绘潵鑾峰彇绫诲瀷鐨勪俊鎭細
Type type = typeof(MyClass);
鎺ヤ笅鏉ワ紝浣犲彲浠ヤ娇鐢═ype绫荤殑鏂规硶鏉ヨ幏鍙栫被鍨嬬殑鎴愬憳淇℃伅锛屾瘮濡傚瓧娈点€佸睘鎬с€佹柟娉曠瓑锛?/p>
// 鑾峰彇瀛楁淇℃伅
FieldInfo[] fields = type.GetFields();
// 鑾峰彇灞炴€т俊鎭?/span>
PropertyInfo[] properties = type.GetProperties();
// 鑾峰彇鏂规硶淇℃伅
MethodInfo[] methods = type.GetMethods();
浣犱篃鍙互浣跨敤Type绫荤殑鏂规硶鏉ュ垱寤虹被鍨嬬殑瀹炰緥銆佽皟鐢ㄦ柟娉曞拰璁块棶灞炴€э細
// 鍒涘缓绫诲瀷鐨勫疄渚?/span>
object instance = Activator.CreateInstance(type);
// 璋冪敤鏂规硶
MethodInfo method = type.GetMethod("MyMethod");
method.Invoke(instance, null);
// 璁块棶灞炴€?/span>
PropertyInfo property = type.GetProperty("MyProperty");
property.SetValue(instance, "new value");
闄や簡鑾峰彇绫诲瀷鐨勬垚鍛樹俊鎭紝浣犺繕鍙互浣跨敤Type绫荤殑鏂规硶鏉ヨ幏鍙栧拰璁剧疆绫诲瀷鐨勭壒鎬э細
// 鑾峰彇绫诲瀷鐨勭壒鎬?/span>
MyAttribute attribute = type.GetCustomAttribute<MyAttribute>();
// 璁剧疆绫诲瀷鐨勭壒鎬?/span>
type.SetCustomAttribute(new MyAttribute());
杩欏彧鏄疌#鍙嶅皠鐨勪竴灏忛儴鍒嗗姛鑳斤紝浣犺繕鍙互浣跨敤鍙嶅皠鏉ュ疄鐜版洿澶嶆潅鐨勬搷浣滐紝姣斿鍔ㄦ€佸姞杞界▼搴忛泦銆佸垱寤烘硾鍨嬬被鍨嬬瓑銆?/p>