MiniProfiler.Settings.Storage.Save(MiniProfiler); を呼び出すことができることはわかっています。データベースへの応答時間を永続化します。しかし、ここにはもう少しトリッキーな問題があります。Web コンテキストなしでも使用できるように、mvc ミニ プロファイラーの周りに小さなフレームワークを構築しました。また、回帰レポート機能も備えています。
しかし、長い話を短くすると、ここに問題があります -
ミニプロファイラーの Step メソッドを呼び出す Step メソッドを実装する必要がありました (さらに他の処理も行います)。これは、ミニ プロファイラーの機能を開発者にそのまま公開していないためです。「ミニプロファイラーアプローチ」または「ストップウォッチアプローチ」を使用できるように、さまざまなアプローチを提供します。だから、これが私の Step メソッドのコードです -
public IDisposable Step(Profiler profiler, String operationName, Int32 numofInvocations = 1, Action operation = null) //
{
if (profiler == Profiler.MVCMiniProfiler)
{
return MiniProfiler.Step(operationName); //This is statement to note in this code
}
else if (profiler == Profiler.MyStopWatch)
{
return new MyStopWatch(operationName, numofInvocations, operation);
}
else
{
return null;
}
}
ここでの問題は、MiniProfiler の Step メソッドが使い捨てオブジェクト (コード内の Timing オブジェクト) を返し、Timing オブジェクトの Dispose() がストップウォッチを停止して経過時間を返すことです。私がしなければならないことは、プロファイルが作成されたらすぐに Save() メソッドを呼び出すことです。しかし、MiniProfiler のソース コードも変更したくありません。
これを行う簡単な方法はありますか?