c# - 如何从方法符号中获取 MethodInfo

标签 c# .net reflection

<分区>

是否可以从方法符号中获取 MethodInfo 对象?

所以本着同样的精神:

typeof(SomeClassSymbol) // this gets you a Type object

这是我想做的:

public class Meatwad
{
    MethodInfo method;

    public Meatwad()
    {
        method = ReflectionThingy.GetMethodInfo(SomeMethod);
    }

    public void SomeMethod() { }

}

我如何实现 ReflectionThingy.GetMethodInfo?鉴于这甚至是可能的,那么重载方法呢?

最佳答案

委托(delegate)在其 Method property 中包含您想要的 MethodInfo .所以你的辅助方法可以很简单:

MethodInfo GetMethodInfo(Delegate d)
{
    return d.Method;
}

您不能直接从方法组转换为Delegate。但是您可以为此使用类型转换。例如:

GetMethodInfo((Action)Console.WriteLine)

请注意,如果您尝试将它与类似 usr 的解决方案混合使用,这将不起作用。例如

GetMethodInfo((Action)(() => Console.WriteLine()))

将为生成的匿名方法返回MethodInfo,而不是Console.WriteLine()

关于c# - 如何从方法符号中获取 MethodInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9469612/

相关文章:

c# - 是否可以使用属性来覆盖方法?

asp.net-mvc - 如何从 PropertyInfo 或 MetaData 检测 [NotMapped] 注释?

c# - 为什么.NET 在某些类中使用 int 而不是 uint?

c# - 使用 WebBrowser 控件时如何获得网站图标?

c# - C# 中的 XML 序列化数组

c# - C# 中的任何泛型(参见代码)

c# - 使用反射实例化类而不运行其构造函数

c# - 如何在 C# 中将逗号分隔的字符串添加到数据表中?

C# listview 添加项目

Java/.NET 将垃圾收集器的引用标记为 "do not follow"?