问题标签 [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 投票
1 回答
84 浏览

c# - 使用 lambda 表达式指定方法的参数

给定MethodInfo一个方法,我如何使用 lambda 表达式来指定参数 ( ParameterInfo)?

例如,给定以下方法签名:

我想要一个方法:

这将像这样被调用:

这可能吗?

0 投票
1 回答
1425 浏览

c# - Type.GetMethod with a Generic 重载 - 获取 Generic MethodInfo 而不遍历所有方法

我有两个功能:

  1. public void DeleteRecord(int id);
  2. public T DeleteRecord<T>(int id);

这是我尝试动态调用泛型方法的方法:

第一行抛出异常,因为它找到了一个模棱两可的定义。有没有一种方法可以在不使用和循环查询结果的情况下获得MethodInfo通用方法?GetMethodsIsGenericMethod

编辑:请删除“重复”,因为建议的两个答案要么通过内部循环(GetMethods().Select...)解决此问题,要么甚至不解决重载问题。

0 投票
2 回答
4176 浏览

c# - 创建 C# 属性以抑制方法执行

我希望创建一个自定义属性来抑制方法在 C# 中执行,即使它被调用。例如,在下面的代码块中,如果方法具有“Skip”属性,则即使从 Main 调用它也不应执行。

如何在 C# 中使用反射来实现这一点?


在下面的代码片段中,我设法提取了带有 Skip 属性的方法,我只是不知道如何阻止它们执行!

任何在正确方向上的帮助或建议都是最受欢迎的:)

0 投票
1 回答
737 浏览

c# - 获取方法参数的值,无论它们的数量或类型 C#

我想获取任何方法的参数值,即使它们使用 C# 具有不同数量的参数,例如,如果您有以下 3 个方法:

因此在 getParameters 方法中,它将采用方法名并以字符串列表的形式返回参数的值,而不管参数的数量是否存在。

我达到了可以获取参数数量但没有值的程度,如下所示

更新:

我通过使用 (params object[] values) 作为方法参数找到了另一种方法,如下所示

0 投票
3 回答
7021 浏览

c# - 从 DLL 中获取程序的程序集

我想访问附加了 DLL 的程序的功能。

在我尝试过的 DLL 中:

但不起作用我得到一个空异常但没有说这条线。正在运行的程序被调用,命名空间是'Uranium',类是'Util',函数是'SendClient'。

0 投票
2 回答
54 浏览

c# - 使用反射从类型成员中调用方法

我有一个 Person 类,其中包含该人的母亲和该人的父亲的字段。我想从人员实例的成员中调用一个名为“WriteName”的方法。

我怎样才能通过反射做到这一点?

我想要这个输出:

编辑:

我更改后的正确代码是:

0 投票
2 回答
1051 浏览

c# - MethodInfo.Invoke TargetException

我有 System.Reflection 的问题,当我调用 MethodInfo.Invoke 方法时,它给了我 TargetException 异常,上面写着:对象与目标不匹配,这里的代码:

任何想法?PS:游戏对象已正确分配,因此它不为空

0 投票
1 回答
411 浏览

c# - .NET 反射 - 声明 MethodInfo.ReturnType 类型的变量

我正在使用反射来调用 WCF 服务:

所以,我希望本地result是一种resultType,但这段代码会产生智能感知错误“无法解析符号结果类型”

0 投票
4 回答
1026 浏览

c# - 如何为“Where”扩展方法获取正确的 MethodInfo

我正在尝试使用反射返回正确的“Where”扩展方法,以构建自定义表达式。我尝试了几种方法,但我得到的最接近的方法抛出异常:“在 mscorlib.dll 中发生'System.Reflection.AmbiguousMatchException' 类型的未处理异常”

我知道这是因为在 Enumrable 类中定义了两个 Where 方法 - 但是我怎样才能返回只使用谓词的 Where 方法

我目前拥有的是:

我也试过(这个返回null):

和(也返回 null)

和(这个返回相同的歧义异常)

任何人都可以帮忙吗?

谢谢

0 投票
1 回答
470 浏览

c# - MethodInfo.Invoke 与 params 参数

我有一个HelperMethods包含静态方法的静态类。我需要在包含 的程序集中动态调用一个方法HelperMethods,但是这个程序集有时是可用的。所以我不能对包含我需要的方法的程序集进行引用。我也不能复制这个方法的代码,因为它会生成一个我需要的自定义对象SpecificServiceHostServiceHost但代码的另一部分只需要知道它是一个ServiceHost对象。如果SpecificServiceHost不可用,该方法只会创建一个常规ServiceHost对象。

现在createServiceHost.Invoke抛出一个异常,该异常baseAddresses一定不是null由于ServiceHost框架中的实现。我认为该params论点将允许null引用。但事实并非如此!我应该怎么办?谢谢!