有没有办法可以互换使用ParameterInfo和PropertyInfo?

时间:2009-09-03 20:16:56

标签: c# .net reflection

对我而言,它们是非常相似的结构。我希望有一种方法可以轻易地将一个转换为另一个。

我正在用反射来做一些魔法。我选择了使用参数化构造函数创建一些用户选择对象的路径,这些对象使用UI填充参数值。

问题是其中一个对象将结构作为参数接受,而我无法将结构属性作为参数信息获取属性信息。

但我不想只重现我现在拥有的属性信息的参数信息代码。如果我可以传递属性信息作为参数信息,那就太好了。除了某些属性的名称外,一切都非常相似; ParameterType与PropertyType相反,而不是。

我可能必须自己进行转换或编写我自己的类,其中包含我需要的属性,而只是使用该自定义对象。欢呼声。

1 个答案:

答案 0 :(得分:2)

不,没有。

这两个类代表两个截然不同的概念。

属性是Type上的属性。 PropertyInfo类允许您设置或获取值,并将告诉您有关该属性的其他信息。

参数是方法签名的属性(类型上的访问者也可以具有参数)。 ParameterInfo类表示此概念,可以告诉您参数的类型,方法签名中的位置,是否为out或ref参数等。请参阅:MSDN doc。 ParameterInfo不直接与Type相关联。