鎬庝箞閫氳繃c#鍙嶅皠璋冪敤鏂规硶
閫氳繃C#鍙嶅皠璋冪敤鏂规硶鐨勬楠ゅ涓嬶細
- 寮曞叆System.Reflection鍛藉悕绌洪棿銆?/li>
- 浣跨敤Type.GetType鏂规硶鑾峰彇瑕佽皟鐢ㄦ柟娉曠殑绫荤殑Type瀵硅薄銆?/li>
- 浣跨敤Type.GetMethod鏂规硶鑾峰彇瑕佽皟鐢ㄧ殑鏂规硶鐨凪ethodInfo瀵硅薄銆傚彲浠ラ€氳繃鏂规硶鍚嶇О銆佸弬鏁扮被鍨嬬瓑淇℃伅鏉ヨ幏鍙栥€?/li>
- 浣跨敤MethodInfo.Invoke鏂规硶璋冪敤鏂规硶銆備紶鍏ヨ璋冪敤鐨勫疄渚嬪璞★紙濡傛灉鏄疄渚嬫柟娉曪級鍜屾柟娉曠殑鍙傛暟锛堝鏋滄湁鍙傛暟锛夈€?/li>
涓嬮潰鏄竴涓ず渚嬩唬鐮侊紝婕旂ず濡備綍閫氳繃C#鍙嶅皠璋冪敤涓€涓柟娉曪細
using System;
using System.Reflection;
public class MyClass
{
public void MyMethod(string message)
{
Console.WriteLine("MyMethod: " + message);
}
}
class Program
{
static void Main()
{
// 鑾峰彇MyClass绫荤殑Type瀵硅薄
Type type = typeof(MyClass);
// 鑾峰彇MyMethod鏂规硶鐨凪ethodInfo瀵硅薄
MethodInfo method = type.GetMethod("MyMethod");
// 鍒涘缓MyClass鐨勫疄渚?/span>
MyClass myObject = new MyClass();
// 璋冪敤MyMethod鏂规硶
method.Invoke(myObject, new object[] { "Hello World!" });
}
}
杩愯浠ヤ笂浠g爜锛岃緭鍑虹粨鏋滀负锛?/p>
MyMethod: Hello World!
娉ㄦ剰锛氬鏋滆璋冪敤鐨勬柟娉曟槸闈欐€佹柟娉曪紝鍙互浼犲叆null浣滀负瀹炰緥瀵硅薄銆傚鏋滄柟娉曟槸绉佹湁鐨勶紝鍙互浣跨敤BindingFlags.NonPublic鏍囧織鏉ヨ幏鍙栨柟娉曠殑MethodInfo瀵硅薄銆?/p>
相关问答