0

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 Controller annonations 中一样,您可以获得所有使用了一些 annonation 的控制器。

4

2 回答 2

1

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

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

于 2012-07-05T20:38:30.753 回答
0

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

但你可以使用 MethodBase.GetParameters

别的

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

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

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

假设 Glue 类具有 GlueStrings 方法,则:

ParameterInfo[] parameterInfos = typeof (Glue).GetMethod("GlueStrings").GetParameters();
于 2012-07-05T20:39:57.683 回答