是的,您可以从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
属性获取了该类型的方法定义列表。您可以根据您的具体情况进行相应的修改。
希望这可以帮助到您!