GetExecutionContextData(LoggingExecutionContextData, bool)
Returns a new layer for the async stack that has this LoggingContext as the associated activity and current
as the
PostSharp.Patterns.Diagnostics.Contexts.LoggingExecutionContextData.Parent, if a new layer is required.
Declaration
protected virtual LoggingExecutionContextData GetExecutionContextData(LoggingExecutionContextData current, bool requireNew)
Parameters
Type | Name | Description |
---|---|---|
LoggingExecutionContextData | current | The layer in the async stack that's currently on top. It will become the parent of the new layer. |
bool | requireNew | If true, then this method must return a new instance. This is a parameter passed by the overriding method to the base call if the overriding method wants the layer to be created even if there's no properties or synthetic ID. |
Returns
Type | Description |
---|---|
LoggingExecutionContextData | The LoggingExecutionContextData to be put on top of the async stack, or null if the no new layer is needed. |
Remarks
The flow is:
- LoggingContext.UpdateExecutionContextData calls LoggingContext.GetExecutionContextData, which is virtual
- GetExecutionContextData returns null if no new layer needs to be created, or returns the new layer, fully edited, otherwise.
- The implementation in the LoggingContext class creates a copy using "LoggingExecutionContextData.Clone" which may create a subclass.
- Implementors must call the base class so that synthetic ID, logging properties and such stuff is filled in.