/// <summary> /// Releases unmanaged and - optionally - managed resources. /// </summary> /// <param name="disposing"> /// <c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources. /// </param> protected virtual void Dispose(bool disposing) { if (!_disposed) { if (_isOwnerContext) { ///// // This class is the owner so free the context data ///// CallContext.FreeNamedDataSlot(SourceEntityContextKey); } _contextData = null; _disposed = true; } }
/// <summary> /// Initializes a new instance of the <see cref="SourceEntityContext" /> class. /// </summary> public SourceEntityContext( ) { ///// // Check the context for a current entity snapshot data ///// _contextData = CallContext.LogicalGetData(SourceEntityContextKey) as SourceEntityContextData; if (_contextData == null) { ///// // No current context found so create one. ///// _contextData = new SourceEntityContextData( ); _isOwnerContext = true; CallContext.LogicalSetData(SourceEntityContextKey, _contextData); } }