As this seems to be handling the lifetime of the unit of work, should you not be injecting a UnitOfWorkFactory or Func<IUnitOfWork> or Func<Owner<IUnitOfWork>>>