using System; namespace SharpGen.Runtime { /// /// Event args which can tell whether calling Dispose with dispoing flag or not. /// public sealed class DisposeEventArgs : EventArgs { /// /// DisposeEventArgs with Disposing flag set to true. /// public static readonly DisposeEventArgs DisposingEventArgs = new DisposeEventArgs(true); /// /// DisposeEventArgs with Disposing flag set to false. /// public static readonly DisposeEventArgs NotDisposingEventArgs = new DisposeEventArgs(false); /// /// True when disposing, otherwise false. /// public readonly bool Disposing; /// /// Initializes a new instance of a DisposeEventArgs class. /// /// True when disposing, otherwise false. private DisposeEventArgs(bool disposing) { Disposing = disposing; } /// /// Gets event args base on disposing parameter. /// /// True when disposing, otherwise false. /// DisposeEventArgs object based on disposing parameter. public static DisposeEventArgs Get(bool disposing) { return disposing ? DisposingEventArgs : NotDisposingEventArgs; } } }