デリゲートを使用すること、System.Actionまたは従来のパターンSystem.Funcの代わりにEventDelegatesとして使用することに反対するものEventHandler。したがって、問題が発生しますか?
private bool disposed;
public event Action<IUnitOfWork, IContext> Disposing;
public void Dispose()
{
    if (this.disposed)
    {
        return;
    }
    if (null != this.Disposing)
    {
        this.Disposing(this, this.AttachedContext);
    }
    this.disposed = true;
}
使用法:
unitOfWorkInstance.Disposing += (u, c) => c.Rollback(u); // in my opinion more readable than
unitOfWorkInstance.Disposing += (sender, args) => args.AttachedContext.Rollback(sender as IUnitOfWork);