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控制器声明中一样,你可以获得使用某些语音的所有控制器。
答案 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();