在解决方案中获取所有方法参数的方法

时间:2012-07-05 20:32:39

标签: c#

C#中是否有方法获取与某些扩展方法一起使用的所有参数?

示例:

public static string GlueStrings(this string mystring, string otherString)
{
   return mystring + otherstring;
}

Form1中的某些方法

string string1 = "Glued";
string string2 = string1.GlueStrings("Strings");

Form2中的某些方法

string string1 = "Foo";
string string2 = string1.GlueStrings("bar");

有没有办法可以创建方法,列出整个解决方案中使用该方法的所有参数,我对整个解决方案中的参数otherString感兴趣?

更新:

这与字符串只是一个例子,我需要它使用不同的类型。就像在MVC控制器声明中一样,你可以获得使用某些语音的所有控制器。

2 个答案:

答案 0 :(得分:1)

您可以在类中保留静态 ConcurrentBag ,并在运行时向其添加每个参数。

(线程安全的并发集合http://msdn.microsoft.com/en-us/library/system.collections.concurrent.aspx

答案 1 :(得分:0)

在性能方面不是最好的方法

但您可以使用MethodBase.GetParameters

其他

GlueStrings怎么样(这个字符串mystring,params object []其他人)

PS:我没有尝试过或单元测试过它

更新:根据您的要求提供示例

假设Class Glue的方法是GlueStrings:

ParameterInfo[] parameterInfos = typeof (Glue).GetMethod("GlueStrings").GetParameters();