Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Re-introduce the ability to ignore disposing scoped and singleton components #706

Closed
dotnetjunkie opened this issue May 2, 2019 · 1 comment
Milestone

Comments

@dotnetjunkie
Copy link
Collaborator

This feature is related to #683, but implements the change in the core library.

The Simple Injector integration packages allows cross wiring of services provided by the ASP.NET Core configuration system. In doing so, however, it partly takes control and ensures disposal. The Core configuration system, unfortunately, disposes those components as well, causing a dependency to be disposed twice.

Due to the contract of IDisposable, this shouldn't be a problem. Classes must allow Dispose to be called multiple times without causing problems.

Developers, however, don't always work according to this pattern, and this might cause performance issues when Dispose is called multiple times.

Since Simple Injector can not take ownership of those components, it should let Core dispose of these instances (as there is no way to instruct Core to not dispose of those instances anyway) and prevent disposing them.

This does mean, however, introducing a change to the Simple Injector core library as it does allow disabling the disposal of Scoped or Singleton components (this is a feature that had been removed with the introduction of v3.0).

@dotnetjunkie
Copy link
Collaborator Author

feature-706 branch created.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant