gpt4 book ai didi

c# - GetMethod 当参数通过引用出现时

转载 作者:太空狗 更新时间:2023-10-30 00:50:28 24 4
gpt4 key购买 nike

我正在使用反射创建对象的实例并获取对象类中的方法,但是当我必须使用 Type 类型的数组来避免歧义时,问题就来了问题,这里是我试图达到的代码示例。

public class BigClass
{
public void getSomething(XmlDocument doc, ref CustomObject obj) {...}
public void getSomething(XmlDocument doc, ref CustomObject obj, string id) {...}
}

此代码来自外部程序集 (file.dll),我正在使用下一个代码。

Assembly a = Assembly.LoadFrom("file.dll");
Type s = a.GetType("FileNamespace.BigClass");
MethodInfo inf = s.GetMethod("getSomething", new [] {typeof(XmlDocument), typeof(CustomObject), typeof(string)});

要获取使用 3 个参数的对象的 MethodInfo,但变量“inf”为空,我认为是因为它没有找到使用“ref”的参数的方法。

有办法解决吗?

最佳答案

您需要查找 ref 类型才能获取 MethodInfo。

MethodInfo inf = s.GetMethod("getSomething", new [] {typeof(XmlDocument), typeof(CustomObject).MakeByRefType(), typeof(string)});

关于c# - GetMethod 当参数通过引用出现时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31485258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com