问题标签 [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.
.net - 从getter/setter的MethodInfo中找到宿主PropertyInfo
我在运行时使用反射进行了一些类型分析。如果我有一个 MethodInfo 实例,我如何确定这是一个“真实”方法还是一个属性的 getter/setter 方法?如果它是一个属性,我怎样才能找到它的托管 PropertyInfo 回来?
c# - 引用所需的重载泛型方法
给定
问题:
- 将其称为“重载的泛型方法”是否正确?
如何在创建 MethodInfo 对象时指定这两种方法?
/li>
参数 4 导致编译器非常不满
c# - 使用反射检查方法是否为“扩展方法”
作为我的应用程序的一部分,我有一个接收 MethodInfo 的函数,需要根据该方法是否为“扩展方法”对其进行特定操作。
我检查了 MethodInfo 类,但找不到任何显示该方法是扩展的IsExtension属性或标志。
有谁知道我如何从方法的 MethodInfo 中找到它?
c# - 通过 MethodInfo 调用方法
我想调用具有特定属性的方法。因此,我正在循环浏览所有程序集和所有方法,以找到具有我的属性的方法。工作正常,但是当我只有 MethodInfo 时如何调用某个方法。
问题是我不知道包含该特定方法的类的实例。所以我不能正确调用它,因为方法不是静态的。如果可能,我还想避免创建此类的新实例。
c# - 如何确定 MethodInfo 是否是基方法的覆盖
我正在尝试确定从类型实例上的 GetMethod 调用获得的 MethodInfo 对象是由该类型实现还是由它的基实现。
例如:
ToString 方法可以在 Foo 类中实现,也可以不在。我想知道我是否得到了 foo 实现?
相关问题
c# - C# MethodInfo getReturnType
我创建了一个 MethodInfo 实例:
现在我想知道 theMethod 的返回类型是否为 void。如何?
c# - 如何获取接口方法的MethodInfo,实现类方法的MethodInfo?
我有MethodInfo
一个接口方法和Type
一个实现接口的类。我想找到实现接口方法的类方法。MethodInfo
simplemethod.GetBaseDefinition()
不适用于接口方法。按名称查找也不起作用,因为当显式实现接口方法时,它可以有任何名称(是的,不是在 C# 中)。
那么,涵盖所有可能性的正确方法是什么?
.net - 从 MethodInfo 构建一个委托?
在谷歌搜索并登陆 SO 并阅读了另一个问题之后
如果您在编译时不知道参数的数量或类型,是否可以从 MethodInfo 构建正确的委托?
更多信息:不使用 Reflection.Emit 或 type builder 可以优雅地完成吗?
这对我来说有点可惜,因为 Delegate.CreateDelegate 要求我将正确的 Delegate 类型指定为第一个参数,否则它会引发异常或调用不正确的方法。
我正在制造一些忍者装备,这将有很大帮助......谢谢!
这是一个通用的解决方案:
注意:我正在构建一个 Silverlight 应用程序,它将替换一个多年前构建的 javascript 应用程序,在该应用程序中,我有多个调用相同 Silverlight [ScriptableMember] 方法的 Javascript 接口。
需要支持所有这些遗留 JS 接口以及用于访问新功能的新接口,因此自动设置 JS 接口并“委托”对正确 Silverlight 方法的调用将有助于大大加快工作速度。
我不能在这里发布代码,所以这是摘要。
c# - 检索在 Func 中执行的调用方法的名称
我想获取被委派为 Func 的方法的名称。
我怎样才能做到这一点?
--为了炫耀的权利--
还可以使用属性调用,让它ExtractMethodName
返回该实例中的属性名称。
例如。
c# - MethodInfo.Invoke 有时返回 null 有时返回值
我正在开发一个 asp.net MVC 应用程序。
我有一个类,它包装了一个使用简单的 linq 语句从数据库中获取数据的存储库。我编写了一个装饰器类来添加缓存逻辑(使用缓存应用程序块)。
因为我有几个要装饰的方法,并且每个方法的逻辑都是相同的(检查缓存中是否存在,如果不调用真正的getter并存储在缓存中),我写了这样的东西:
一个辅助方法,它执行检查缓存中是否存在等常见逻辑:
这一切都很好,很可爱。在每个装饰方法中,我都有以下代码:
问题是有时realMethod.Invoke(...)
发生的行返回null。如果我在之后放置一个断点,然后将执行返回到该行,则结果不为空,并且从数据库中获取数据。所有输入变量都正确,数据库中存在数据,第二次运行获取数据,那么第一次运行出现什么问题?!
谢谢 :)