C# Class Aspectacular.StopwatchAspect

An aspect recording start time and elapsed execution time. Place this aspect in the aspect collection AFTER log output classes, like TraceOutputAspect, to ensure final data point is shown in the log.
Inheritance: Aspect
Datei anzeigen Open project: vgribok/Aspectacular

Public Properties

Property Type Description
Detailed bool

Protected Properties

Property Type Description
stopwatch Stopwatch

Public Methods

Method Description
Step_1_BeforeResolvingInstance ( ) : void

Called for non-static methods only. Please note that method metadata is not available at this point.

Step_2_BeforeTryingMethodExec ( ) : void

Called right before intercepted method execution.

Step_3_BeforeMassagingReturnedResult ( ) : void

Called after intercepted method returned result and before interceptor augmented it, usually by LINQ modifiers like List(). May be called multiple times if retries are enabled.

LINQ's List(), Single(), etc. methods may be used to execute query returned by the intercepted method. This interceptor is called after query was returned and before it was executed. During this period, Context.ReturnedValue has exact value returned by the intercepted method. After this interceptor is called, Context.ReturnedValue may be changed, primarily by LINQ modifiers, like List().

Step_4_Optional_AfterCatchingMethodExecException ( ) : void

Called after method execution failed (thrown an exception).

Step_4_Optional_AfterSuccessfulCallCompletion ( ) : void

Called after method itself and optional result massager were called successfully. May be called multiple times when retries are enabled.

Since this method may be called multiple times on retries, put all finalization/cleanup logic into steps 5-7.

Step_5_FinallyAfterMethodExecution ( bool interceptedCallSucceeded ) : void

Called after method execution success or failure.

Step_6_Optional_AfterInstanceCleanup ( ) : void

Called only for instance method that have instance cleanup

Step_7_AfterEverythingSaidAndDone ( ) : void

The very final cutpoint in the life cycle of the call.

StopwatchAspect ( ) : System

Initializes stopwatch that will record on start and end time and elapsed time. No interim measurements will be recorded.

StopwatchAspect ( bool detailed ) : System

Protected Methods

Method Description
RecordStepTime ( string stepName, bool forceDetail = false ) : void

Records elapsed time for a given step.

Private Methods

Method Description
RecordStartTime ( ) : void

Method Details

RecordStepTime() protected method

Records elapsed time for a given step.
protected RecordStepTime ( string stepName, bool forceDetail = false ) : void
stepName string
forceDetail bool Pass true to record data for the step even if this.Detail=false.
return void

Step_1_BeforeResolvingInstance() public method

Called for non-static methods only. Please note that method metadata is not available at this point.
public Step_1_BeforeResolvingInstance ( ) : void
return void

Step_2_BeforeTryingMethodExec() public method

Called right before intercepted method execution.
public Step_2_BeforeTryingMethodExec ( ) : void
return void

Step_3_BeforeMassagingReturnedResult() public method

Called after intercepted method returned result and before interceptor augmented it, usually by LINQ modifiers like List(). May be called multiple times if retries are enabled.
LINQ's List(), Single(), etc. methods may be used to execute query returned by the intercepted method. This interceptor is called after query was returned and before it was executed. During this period, Context.ReturnedValue has exact value returned by the intercepted method. After this interceptor is called, Context.ReturnedValue may be changed, primarily by LINQ modifiers, like List().
public Step_3_BeforeMassagingReturnedResult ( ) : void
return void

Step_4_Optional_AfterCatchingMethodExecException() public method

Called after method execution failed (thrown an exception).
public Step_4_Optional_AfterCatchingMethodExecException ( ) : void
return void

Step_4_Optional_AfterSuccessfulCallCompletion() public method

Called after method itself and optional result massager were called successfully. May be called multiple times when retries are enabled.
Since this method may be called multiple times on retries, put all finalization/cleanup logic into steps 5-7.
public Step_4_Optional_AfterSuccessfulCallCompletion ( ) : void
return void

Step_5_FinallyAfterMethodExecution() public method

Called after method execution success or failure.
public Step_5_FinallyAfterMethodExecution ( bool interceptedCallSucceeded ) : void
interceptedCallSucceeded bool
return void

Step_6_Optional_AfterInstanceCleanup() public method

Called only for instance method that have instance cleanup
public Step_6_Optional_AfterInstanceCleanup ( ) : void
return void

Step_7_AfterEverythingSaidAndDone() public method

The very final cutpoint in the life cycle of the call.
public Step_7_AfterEverythingSaidAndDone ( ) : void
return void

StopwatchAspect() public method

Initializes stopwatch that will record on start and end time and elapsed time. No interim measurements will be recorded.
public StopwatchAspect ( ) : System
return System

StopwatchAspect() public method

public StopwatchAspect ( bool detailed ) : System
detailed bool If true, outputs time and elapsed time after every cut-point. Otherwise data recorded at the beginning and at the end.
return System

Property Details

Detailed public_oe property

When true, outputs time and elapsed time after every cut-point. Otherwise, output only start and end time and total elapsed time.
public bool Detailed
return bool

stopwatch protected_oe property

protected Stopwatch stopwatch
return Stopwatch