问题标签 [methodinfo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
4988 浏览

.net - 从getter/setter的MethodInfo中找到宿主PropertyInfo

我在运行时使用反射进行了一些类型分析。如果我有一个 MethodInfo 实例,我如何确定这是一个“真实”方法还是一个属性的 getter/setter 方法?如果它是一个属性,我怎样才能找到它的托管 PropertyInfo 回来?

0 投票
6 回答
7839 浏览

c# - 引用所需的重载泛型方法

给定

问题:

  1. 将其称为“重载的泛型方法”是否正确?
  2. 如何在创建 MethodInfo 对象时指定这两种方法?

    /li>

参数 4 导致编译器非常不满

0 投票
5 回答
2523 浏览

c# - 使用反射检查方法是否为“扩展方法”

作为我的应用程序的一部分,我有一个接收 MethodInfo 的函数,需要根据该方法是否为“扩展方法”对其进行特定操作。

我检查了 MethodInfo 类,但找不到任何显示该方法是扩展的IsExtension属性或标志。

有谁知道我如何从方法的 MethodInfo 中找到它?

0 投票
3 回答
18366 浏览

c# - 通过 MethodInfo 调用方法

我想调用具有特定属性的方法。因此,我正在循环浏览所有程序集和所有方法,以找到具有我的属性的方法。工作正常,但是当我只有 MethodInfo 时如何调用某个方法。

问题是我不知道包含该特定方法的类的实例。所以我不能正确调用它,因为方法不是静态的。如果可能,我还想避免创建此类的新实例。

0 投票
4 回答
4870 浏览

c# - 如何确定 MethodInfo 是否是基方法的覆盖

我正在尝试确定从类型实例上的 GetMethod 调用获得的 MethodInfo 对象是由该类型实现还是由它的基实现。

例如:

ToString 方法可以在 Foo 类中实现,也可以不在。我想知道我是否得到了 foo 实现?

相关问题

是否可以判断.NET 虚拟方法是否已在派生类中被覆盖?

0 投票
1 回答
1024 浏览

c# - C# MethodInfo getReturnType

我创建了一个 MethodInfo 实例:

现在我想知道 theMethod 的返回类型是否为 void。如何?

0 投票
3 回答
17392 浏览

c# - 如何获取接口方法的MethodInfo,实现类方法的MethodInfo?

我有MethodInfo一个接口方法和Type一个实现接口的。我想找到实现接口方法的类方法。MethodInfo

simplemethod.GetBaseDefinition()不适用于接口方法。按名称查找也不起作用,因为当显式实现接口方法时,它可以有任何名称(是的,不是在 C# 中)。

那么,涵盖所有可能性的正确方法是什么?

0 投票
3 回答
13462 浏览

.net - 从 MethodInfo 构建一个委托?

在谷歌搜索并登陆 SO 并阅读了另一个问题之后

如果您在编译时不知道参数的数量或类型,是否可以从 MethodInfo 构建正确的委托?

更多信息:不使用 Reflection.Emit 或 type builder 可以优雅地完成吗?

这对我来说有点可惜,因为 Delegate.CreateDelegate 要求我将正确的 Delegate 类型指定为第一个参数,否则它会引发异常或调用不正确的方法。

我正在制造一些忍者装备,这将有很大帮助......谢谢!


这是一个通用的解决方案:


注意:我正在构建一个 Silverlight 应用程序,它将替换一个多年前构建的 javascript 应用程序,在该应用程序中,我有多个调用相同 Silverlight [ScriptableMember] 方法的 Javascript 接口。

需要支持所有这些遗留 JS 接口以及用于访问新功能的新接口,因此自动设置 JS 接口并“委托”对正确 Silverlight 方法的调用将有助于大大加快工作速度。

我不能在这里发布代码,所以这是摘要。

0 投票
3 回答
1012 浏览

c# - 检索在 Func 中执行的调用方法的名称

我想获取被委派为 Func 的方法的名称。

我怎样才能做到这一点?

--为了炫耀的权利--

还可以使用属性调用,让它ExtractMethodName返回该实例中的属性名称。

例如。

0 投票
1 回答
2306 浏览

c# - MethodInfo.Invoke 有时返回 null 有时返回值

我正在开发一个 asp.net MVC 应用程序。

我有一个类,它包装了一个使用简单的 linq 语句从数据库中获取数据的存储库。我编写了一个装饰器类来添加缓存逻辑(使用缓存应用程序块)。

因为我有几个要装饰的方法,并且每个方法的逻辑都是相同的(检查缓存中是否存在,如果不调用真正的getter并存储在缓存中),我写了这样的东西:

一个辅助方法,它执行检查缓存中是否存在等常见逻辑:

这一切都很好,很可爱。在每个装饰方法中,我都有以下代码:

问题是有时realMethod.Invoke(...)发生的行返回null。如果我在之后放置一个断点,然后将执行返回到该行,则结果不为空,并且从数据库中获取数据。所有输入变量都正确,数据库中存在数据,第二次运行获取数据,那么第一次运行出现什么问题?!

谢谢 :)