C# Class Aspectacular.Aspect

Base class for all method interceptors
Inheritance: IAspect
Datei anzeigen Open project: vgribok/Aspectacular Class Usage Examples

Public Methods

Method Description
GetLogText ( Func entrySelector = null ) : string

Generates log text from a collection of log entries specified by entrySelector delegate. If entrySelector is null, all entries are used generate log text. Environment.NewLine as line separator.

GetLogText ( string lineSeparator, Func entrySelector = null ) : string

Generates log text from a collection of log entries specified by entrySelector delegate. If entrySelector is null, all entries are used generate log text. Environment.NewLine as line separator.

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.

Protected Methods

Method Description
CancelInterceptedMethodCallAndSetReturnValue ( object newReturnValue ) : void

This method can be used by caching aspects to supply return value without calling method itself.

Log ( EntryType entryType, string optionalKey, string format ) : void

Adds entry to the log held by the proxy.

LogError ( string format ) : void

Shortcut for logging error entries.

LogErrorWithKey ( string optionalKey, string format ) : void

Shortcut for logging error entries.

LogInformation ( string format ) : void

Shortcut for logging information entries.

LogInformationData ( string optionalKey, object data ) : void

Shortcut for logging information entries.

LogInformationWithKey ( string optionalKey, string format ) : void

Shortcut for logging information entries.

LogWarning ( string format ) : void

Shortcut for logging warning entries.

LogWarningWithKey ( string optionalKey, string format ) : void

Shortcut for logging warning entries.

Private Methods

Method Description
Aspect ( ) : System

Method Details

CancelInterceptedMethodCallAndSetReturnValue() protected method

This method can be used by caching aspects to supply return value without calling method itself.
protected CancelInterceptedMethodCallAndSetReturnValue ( object newReturnValue ) : void
newReturnValue object
return void

GetLogText() public method

Generates log text from a collection of log entries specified by entrySelector delegate. If entrySelector is null, all entries are used generate log text. Environment.NewLine as line separator.
public GetLogText ( Func entrySelector = null ) : string
entrySelector Func /// Optional entry log filter delegate that may use entry.ToString() or its own logic to /// generate text for each selected log entry. ///
return string

GetLogText() public method

Generates log text from a collection of log entries specified by entrySelector delegate. If entrySelector is null, all entries are used generate log text. Environment.NewLine as line separator.
public GetLogText ( string lineSeparator, Func entrySelector = null ) : string
lineSeparator string
entrySelector Func /// Optional entry log filter delegate that may use entry.ToString() or its own logic to /// generate text for each selected log entry. ///
return string

Log() protected method

Adds entry to the log held by the proxy.
protected Log ( EntryType entryType, string optionalKey, string format ) : void
entryType EntryType
optionalKey string
format string
return void

LogError() protected method

Shortcut for logging error entries.
protected LogError ( string format ) : void
format string
return void

LogErrorWithKey() protected method

Shortcut for logging error entries.
protected LogErrorWithKey ( string optionalKey, string format ) : void
optionalKey string
format string
return void

LogInformation() protected method

Shortcut for logging information entries.
protected LogInformation ( string format ) : void
format string
return void

LogInformationData() protected method

Shortcut for logging information entries.
protected LogInformationData ( string optionalKey, object data ) : void
optionalKey string
data object
return void

LogInformationWithKey() protected method

Shortcut for logging information entries.
protected LogInformationWithKey ( string optionalKey, string format ) : void
optionalKey string
format string
return void

LogWarning() protected method

Shortcut for logging warning entries.
protected LogWarning ( string format ) : void
format string
return void

LogWarningWithKey() protected method

Shortcut for logging warning entries.
protected LogWarningWithKey ( string optionalKey, string format ) : void
optionalKey string
format string
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