15

构造函数如下所示:

public NameAndValue(string name, string value)

我需要使用反射将它作为 MethodInfo 获取。它尝试了以下操作,但没有找到构造函数(GetMethodreturns null)。

MethodInfo constructor = typeof(NameAndValue).GetMethod(".ctor", new[] { typeof(string), typeof(string) });

我究竟做错了什么?

4

3 回答 3

10

类型.GetConstructor。请注意,这将返回 ConstructorInfo 而不是 MethodInfo,但它们都派生自 MethodBase,因此具有大部分相同的成员。

于 2009-09-04T08:49:39.357 回答
5
ConstructorInfo constructor = typeof(NameAndValue).GetConstructor
        (new Type[] { typeof(string), typeof(string) });

您应该在 ConstructorInfo 中有您需要的元素,但我不知道如何为构造函数获取 MethodInfo。

善良,

于 2009-09-04T08:55:39.003 回答
0

我相信您唯一缺少的是正确的 BindingFlags。我没有在这个例子中指定参数类型,但你可以这样做。

var typeName = "System.Object"; // for example
var type = Type.GetType(typeName);
var constructorMemberInfos = type.GetMember(".ctor", BindingFlags.CreateInstance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
// Note that constructorMemberInfos will be an array of matches
于 2014-07-23T03:50:24.157 回答