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 コントローラー注釈のように。

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 に答える