public override void SetValue(object newValue)
{
EnsureValues();
if (!enabled)
{
throw new InvalidOperationException("UnitOfWork not started.");
}
var prevValue = this.GetValue();
if (prevValue != null)
{
var disposable = prevValue as IDisposable;
if (disposable != null)
{
disposable.Dispose();
}
}
values[this.key] = newValue;
}