是的,您可以從MethodDefinition(Cecil)獲取MethodInfo。Cecil是一個用于操作和分析.NET程序集的庫,它可以幫助您在運行時獲取和操作程序集中的類型、方法和字段等信息。
要從MethodDefinition獲取MethodInfo,您可以使用以下代碼示例:
using Mono.Cecil;
// 加載程序集
AssemblyDefinition assembly = AssemblyDefinition.ReadAssembly("YourAssembly.dll");
// 獲取類型
TypeDefinition type = assembly.MainModule.GetType("YourNamespace.YourType");
// 獲取方法定義
MethodDefinition method = type.Methods.FirstOrDefault(m => m.Name == "YourMethod");
// 將MethodDefinition轉換為MethodInfo
MethodInfo methodInfo = method.ToMethod();
// 現在您可以使用methodInfo進行反射操作
// ...
請注意,您需要引用Mono.Cecil庫,并使用Mono.Cecil
命名空間。以上代碼示例假定您已經加載了程序集,并通過assembly.MainModule.GetType
方法獲取了類型,然后通過type.Methods
屬性獲取了該類型的方法定義列表。您可以根據您的具體情況進行相應的修改。
希望這可以幫助到您!