バックグラウンド
私が取り組んでいるソリューションに追加したいユーティリティメソッドがいくつかあり、依存性注入を使用すると、これらのメソッドのより多くの潜在的な用途が開かれます。
C#、.NET 4 を使用しています
これが私が達成しようとしているものの例です(これは単なる例です):
public static void PerformanceTest(Func<???> func, int iterations)
{
var stopWatch = new Stopwatch();
stopWatch.Start();
for (int i = 0; i < iterations; i++)
{
var x = func();
}
stopWatch.Stop();
Console.WriteLine(stopWatch.ElapsedMilliseconds);
}
ここで行ったことは、デバッグ時にコードの特定の要素のパフォーマンスをテストするメソッドを作成することです。これを使用する方法の例を次に示します。
Utilities.PerformanceTest(someObject.SomeCustomExtensionMethod(),1000000);
質問
"PerformanceTest" メソッドは、既知の型の関数が渡される (注入される) ことを想定しています。しかし、さまざまな型を返すさまざまな関数の注入を "PerformanceTest" で許可したい場合はどうすればよいでしょうか? それ、どうやったら出来るの?