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;
}
}
}