问题标签 [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 回答
1607 浏览

c# - 从 SoapHttpClientProtocol 生成的 MethodInfo 获取底层 WebResponse

我花了一段时间看这个,但我很难得到任何有用的答案。

基本上我有一个之前从 WSDL 编译的 SoapHttpClientProtocol。然后我从 clientProtocol 获取我的特定方法的 MethodInfo 并使用标准 Invoke 方法调用它。

您得到的只是来自作为对象的 Web 服务的响应。我想要做的是获取传回的实际 SOAP 响应,这样我就可以进入实际的 XML。我已经看到了一种非线程安全的方法,但在这种情况下没有帮助。有谁知道这样做的方法。也许某种形式的代理?

如果有人可以提供帮助,将不胜感激。

0 投票
1 回答
403 浏览

.net - MethodInfo 和委托

我正在使用 dotnet 2.0

我知道使用 EventInfo 值,您可以遍历程序集的类型并找到与 EventInfo 委托定义( EventInfo.EventHandlerType )匹配的所有方法

有没有办法找出可以在 Delegate.CreateDelegate() 函数中分配给定 MethodInfo 的可用委托,而无需首先遍历所有引用的程序集以查找所有委托定义。

还是我坚持做以下事情:

0 投票
1 回答
609 浏览

.net - 使用反射获取泛型 MethodInfo 而不使用字符串名称,并且泛型参数在运行时解析

我正在为温莎城堡写一个子依赖解析器。解析器返回一个实现通用接口的对象。泛型参数在运行时解析,工厂用于返回正确的实现。我不想使用字符串来获取工厂方法的 MethodInfo。以下是可行的,但我觉得必须有更好的方法来解决工厂创建方法,请参阅 GetMethodName 及其使用方式。

我不确定这是否是滥用,但它可以完成工作,我只是觉得我错过了一些明显的东西。我希望有某种方法可以将 MethodInfo 上的泛型参数从 MethodCallExpression 更改为从 MethodInfo 返回到它的“父”并使用我想要的类型调用 MakeGenericMethod 的方法。

0 投票
2 回答
253 浏览

c# - MethodInfo.Invoke 在 Windows 7 上需要管理员吗?

所以我在运行时加载一个程序集,并且我还根据程序集类型使用泛型。为了获得正确的类型,每个 DLL 都在实现一个我希望在那里的工厂,它用正确的泛型类型实例化类。

此代码在方法上失败。当我没有管理权限时调用。以我使用它的方式对 MethodInfo.Invoke 的任何调用都需要管理员,这是否正确?我进入了我的 DLL 代码,它甚至没有通过这个调用进入工厂。

编辑:原来有一个没有考虑到的目标 DLL 的依赖关系。我确实喜欢提出的 MEF 框架想法。

0 投票
1 回答
253 浏览

c# - Silverlight 反射 | 带有传递参数的 GetCurrentMethod

我想将当前方法调用(包括返回值)打印到 Visual Studio 输出,如下所示:

我有时会在调试时使用它来获取更多信息(例如,从此处显示的转换器)。然而,这只是一种迂回的方式。

有没有办法让它更灵活?GetCurrentArguments(来自 MethodInfo)之类的东西?

0 投票
2 回答
2850 浏览

c# - 基于 c# 中的用户输入解析为原始类型

我的代码使用我给它的反射和字符串,而不是用户输入。最终,我希望用户能够说“float”“2.0”并让计算机说,是的,这是一个浮点数,或者计算机会说的“bool”“abc”,这不是它听说过的布尔值。

接受用户输入并将其转换为原始类型名称就足够简单了,例如“string”到“System.String”,“float”到“System.Single”等(尽管如果你知道一个函数要做到这一点,那也很棒。)

这是代码:

但是我在倒数第二行不断收到空异常。那里发生了什么事?

0 投票
2 回答
13489 浏览

c# - 使用反射在具有签名的对象实例上调用泛型方法:SomeObject.SomeGenericInstanceMethod(T 论点)

我怎么打电话SomeObject.SomeGenericInstanceMethod<T>(T arg)

有一些关于调用泛型方法的帖子,但不太像这个。问题是方法参数参数被限制为泛型参数。

我知道如果签名是

SomeObject.SomeGenericInstanceMethod<T>(string arg)

然后我可以得到 MethodInfo

typeof (SomeObject).GetMethod("SomeGenericInstanceMethod", new Type[]{typeof (string)}).MakeGenericMethod(typeof(GenericParameter))

那么,当常规参数是泛型类型时,如何获取 MethodInfo 呢?谢谢!

此外,泛型参数上可能有也可能没有类型约束。

0 投票
4 回答
1741 浏览

c# - 如何确定 ParameterInfo 是否属于泛型类型?

我有MethodInfo一个 GenericMethodDefinition。如:CallMethod<T>(T arg, string arg2)。GetParameters() 方法将给我两个 ParameterInfo 对象,第一个是通用的,第二个不是。我怎样才能让 ParameterInfo 告诉我它是通用的?如果有约束怎么办?

0 投票
1 回答
1527 浏览

c# - System.Reflection.MethodInfo.Invoke 和多线程(带返回类型)

我一直在浏览网站上的其他问题,并找到了这篇文章。

堆栈溢出原帖

Ben Voigts 的回答非常有用,我相信我可以在我的系统中使用它。

我遇到的问题是,在某些情况下,我需要从方法调用中返回一个值。

我本来打算对该帖子发表评论,但我的代表还不够高,无法发表评论。

希望 Ben 会看到这篇文章,或者其他人能够扩展他的答案以包括如何返回值。

如果您需要任何其他信息,请告诉我。

亲切的问候

0 投票
1 回答
259 浏览

dynamic - 使用 C# 在运行时读取参数、属性和返回类型的一种方法

继续我之前的线程使用反射读取包含另一个对象数组的对象的属性。我希望让 EvgK 中的这个美妙的方法成为一种通用方法,可以在我的代码库中的多个地方使用。

同样,我正在尝试读取用户传递的方法。我列出了参数、它们的属性和值。用户提供输入值后,我会动态调用该方法以获取结果对象。结果被传递给 GetMyProperties() 方法,该方法列出所有属性(到 n 级) - 名称、值和类型。

目前,我有两种方法(定义如下):

我使用第一个来显示所选方法的所有参数列表及其属性 - 名称、值和类型。

..创建我的属性列表,以便用户可以输入参数。我通过 ParameterType 和 GetProperties 方法检查它是否是自定义类型。如果是自定义类型,那么它会以递归方式调用自身以构建我绑定到网格以供输入的列表。

第二种方法 GetMyProperties(object obj) 用于列出返回对象。由于我在编译时不知道所选方法的返回类型,所以使用对象类型。我想知道我是否可以以某种方式修改第二种方法以使用它来读取参数、属性和返回类型?而不是有单独的方法?试图重用代码。