System.Web.SessionState.SessionInProcHandler.OnSessionRemoved C# (CSharp) Method

OnSessionRemoved() private method

private OnSessionRemoved ( string key, object value, CacheItemRemovedReason reason ) : void
key string
value object
reason CacheItemRemovedReason
return void
		void OnSessionRemoved (string key, object value, CacheItemRemovedReason reason)
                {
			if (expireCallback != null) {
				if (key.StartsWith (CachePrefix, StringComparison.OrdinalIgnoreCase))
					key = key.Substring (CachePrefixLength);
				
				if (value is SessionStateStoreData)
					expireCallback (key, (SessionStateStoreData)value);
				else if (value is InProcSessionItem) {
					InProcSessionItem item = (InProcSessionItem)value;
					if (item.resettingTimeout) {
						item.resettingTimeout = false;
						return;
					}
					
					expireCallback (key,
							new SessionStateStoreData (
								item.items,
								item.staticItems,
								item.timeout));
					item.Dispose ();
				} else
					expireCallback (key, null);
			} else if (value is InProcSessionItem)
				((InProcSessionItem)value).Dispose ();
                }
	}