GetMethod 当参数通过引用出现时
GetMethod when argument comes by reference
我正在使用反射创建一个对象的实例并在对象的 class 中获取方法,但是当我必须使用类型为 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"变为null,我认为是因为它没有找到使用[=23的参数的方法=].
有办法解决吗?
您需要查找引用类型才能获取 MethodInfo。
MethodInfo inf = s.GetMethod("getSomething", new [] {typeof(XmlDocument), typeof(CustomObject).MakeByRefType(), typeof(string)});
我正在使用反射创建一个对象的实例并在对象的 class 中获取方法,但是当我必须使用类型为 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"变为null,我认为是因为它没有找到使用[=23的参数的方法=].
有办法解决吗?
您需要查找引用类型才能获取 MethodInfo。
MethodInfo inf = s.GetMethod("getSomething", new [] {typeof(XmlDocument), typeof(CustomObject).MakeByRefType(), typeof(string)});