当使用包含引用类型的参数调用getMethod时,MethodInfo显示null

时间:2015-04-09 09:32:53

标签: c# reflection

 public abstract class DbAttribute : IComparable
 {
 }

public abstract bool GetString(DbAttribute attributeName, ref string attributeValue);

Assembly testAssembly = null;
Type attributeA = testAssembly.GetType("A.Core.Data.DbAttribute");   
Type elementA = testAssembly.GetType("A.Core.Data.DbElement");

MethodInfo mi = elementA.GetMethod("GetString", new Type[] { attributeA, typeof(System.String)});

mi为null事件hough elementA.getMethods()显示GetString方法。我想我对参数attributeA做错了。

如果我使用typeof(System.Object)而不是attributeA,它仍会返回null。

在这种情况下,请建议如何正确使用GetMethod

1 个答案:

答案 0 :(得分:3)

我认为它是由ref参数

引起的
MethodInfo mi =ElementA.GetMethod("GetString",new Type[] { typeof(AttributeA)  ,typeof(System.String).MakeByRefType()});