FactoryScoped
в 1.x переименован в 2.x в InstancePerDependency
, что лучше описывает эффект.Это означает, что Autofac будет обслуживать новый экземпляр каждый раз, когда сервис вводится.В вашем случае новый контекст данных будет создан после внедрения.
Autofac по-прежнему позаботится об утилизации, но в этом и заключается ловушка.Каждый экземпляр MyDataContext
будет отслеживаться в текущей области действия и, следовательно, не будет освобожден до тех пор, пока область не будет освобождена.
Чтобы самостоятельно контролировать удаление, вы можете пометить регистрациюс ExternallyOwned
.Вы также можете посмотреть на тип Owned<>
.Читайте о детерминированной ликвидации и принадлежащих экземплярах .