呼び出しているWebサービスのパフォーマンスの問題をいくつか調べています。実際のWebサービスメソッド自体全体にタイムレコーディングコードを配置することができましたが、結果セットのシリアル化にかかる実際の時間が問題になる可能性があるように見えますか?
したがって、このデータのシリアル化にかかる時間を記録しようとしていますが、結果を得るのに苦労しています。
これが私たちが持っているウェブサービスメソッドの例です:
[AuthExtension]
[WebMethod]
[SoapHeader("AuthHeader", Direction = SoapHeaderDirection.In)]
public ResultSet CheckAvailability(FareSelections fareSelections)
{
ResultSet results = null;
results = Logic.CheckAvailability(fareSelections, AuthHeader.Token, timeLogger);
return results;
}
[OnSerializing()]および[OnSerialized()]属性で装飾されたメソッドを返されるクラスに配置しようとしましたが、これは機能しません。また、try..finallyブロックを使用してメソッドのタイミングをキャプチャしようとしましたが、これも実際のシリアル化時間を記録しているとは思いませんか?
独自のシリアライザーを実装する必要があるかもしれないと提案されていますが(タイミングを記録してから、とにかくデフォルトのシリアライザーを呼び出すだけです)、これが私が持っている唯一のオプションであるかどうか疑問に思っていましたか?
どんな考えでも大歓迎です。