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

Bump SimpleInjector from 4.7.1 to 5.0.1 #120

Merged
merged 1 commit into from
Jun 19, 2020

Conversation

dependabot-preview[bot]
Copy link
Contributor

Bumps SimpleInjector from 4.7.1 to 5.0.1.

Release notes

Sourced from SimpleInjector's releases.

Simple Injector v5.0

Release Notes

Simple Injector v5 is available through Nuget. For more background information about this release and a general overview, please read the blog post.

Before you upgrade to v5.0, please make sure you upgrade your application to the latest 4.x version of Simple Injector first.

For the release notes of the ASP.NET Core integration packages, go here.

Overview

The most prominent changes and improvements in this release are:

  • #692 No more .NET 4.0. We decided to drop support for the legacy version 4.0 of the .NET Framework. Minimum supported versions are .NET 4.5 and .NET Standard 1.0.
  • #557 No more first-chance exceptions. The chance of having your IDE stop at an exception that can safely be continued (a first-chance exception), are now much smaller.
  • #747 Container is now automatically verified when first resolved.
  • #780 Unregistered concrete types are no longer resolved.
  • #747 Simplified registration of disposable components. Disposables can now more easily be registered using Lifestyle.Scoped because Simple Injector now allows Transient dependencies to be injected without causing verification errors.
  • #820: Registration/startup performance improved. We managed make your application load faster. In extreme cases startup performance is improved up to 60%.
  • #791 Asynchronous disposal. Container and Scope classes now implement IAsyncDisposable to allow asynchronous disposal of components (only in .NET 4.6.1, .NET Standard 2.0, and .NET Standard 2.1 versions)
  • #393 Injection of metadata. In more advanced scenarios, infrastructural components can benefit from receiving additional metadata for injected components. You can now out-of-the-box inject SimpleInjector.DependencyMetadata<TService> into your infrastructural components to get the actual implementation type, even when that component is intercepted with decorators. This also works for collections.

Breaking changes

Below you find the complete list of all the breaking changes in the core library and all officially supported integration libraries.

Simple Injector core library

  • #747 Verification is now automatically performed upon the very first call to GetInstance(). You will be affected if you purposely skipped verifying the container. This behavior can be disabled by setting Container.Options.EnableAutoVerification = false;
  • #694 When calling RegisterConditional, the PredicateContext.Consumer property will now never return null, but instead it throws an exception. Use the new PredicateContext.HasConsumer property instead of checking for null. You will be affected when you checked PredicateContext.Consumer for null.
  • #816 Verification now allows Transient components to be injected into Scoped components by default. This behavior can be disabled by setting Container.Options.UseStrictLifestyleMismatchBehavior = true
  • #393 The where TService : class type constraint was removed from InstanceProducer<TService>
  • InstanceProducer constructor became obsolete.
  • #700 Decorating container-uncontrolled collections with a singleton decorator will now throw an exception.
  • #692 Removed support for .NET 4.0.
  • #557 ConstructorInfo GetConstructor(Type) method of IConstructorResolutionBehavior interface replaced with ConstructorInfo? TryGetConstructor(Type, out string?) method. You will be affected when you replaced the default constructor resolution behavior.
  • #557 void Verify(InjectionConsumerInfo) method of IDependencyInjectionBehavior interface replaced with bool VerifyDependency(InjectionConsumerInfo, out string?) method. You will be affected when you replaced the default dependency injection behavior.
  • #780 Unregistered concrete types will not be resolved any longer. You will be affected when your configuration depends on unregistered concrete types. This behavior can be disabled by setting Container.Options.ResolveUnregisteredConcreteTypes = true;.
  • #275 Options.EnableDynamicAssemblyCompilation is now obsolete and replaced with a new Options.ExpressionCompilationBehavior.
  • #809 Several obsoleted methods and classes that previously caused compile errors (due to the use of the ObsoleteAttribute) have been removed. To prevent any problems, make sure you upgrade to the latest v4.x release first before upgrading to v5. Only upgrade to v5 after fixing all compiler warnings and errors .
  • #810 Several obsoleted properties, methods, and classes that where marked as obsoleted are now marked with Obsolete(error: true) which will cause a compiler error when used:
    • All AdvancedExtensions methods (IsLocked, IsVerifying, GetItem, SetItem, GetOrSetItem<T>, and AppendToCollection)
    • Container.RegisterCollection overloads (they have been replaced with Container.Collection.Register)
    • Container.RegisterSingleton overloads for registering already existing instances (they have been replaced with Container.RegisterInstance methods)
    • Scope's default constructor
  • #820: Lifestyle: protected Lifestyle.CreateRegistrationCore<T>(Container) method removed. You should now inherit from Lifestyle.CreateRegistrationCore(Type, Container). It has the same semantics.
  • #820: Registration: Type implemenationType and Func<object> instanceCreator = null parameters added to Registration constructor. You will be affected when you developed a custom lifestyle.
  • #820: Registration: BuildTransientDelegate<TService>(Func<TService>) removed. You can call BuildTransientDelegate() instead. You will be affected when you developed a custom lifestyle.
  • #820: Registration: BuildTransientExpression<TService>(Func<TService>) removed. You can call BuildTransientExpression() instead. You will be affected when you developed a custom lifestyle.
... (truncated)
Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
  • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:

  • Update frequency (including time of day and day of week)
  • Pull request limits (per update run and/or open at any time)
  • Automerge options (never/patch/minor, and dev/runtime dependencies)
  • Out-of-range updates (receive only lockfile updates, if desired)
  • Security updates (receive only security updates, if desired)

Bumps [SimpleInjector](https://github.com/simpleinjector/SimpleInjector) from 4.7.1 to 5.0.1.
- [Release notes](https://github.com/simpleinjector/SimpleInjector/releases)
- [Commits](https://github.com/simpleinjector/SimpleInjector/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
@dependabot-preview dependabot-preview bot added the dependencies Pull requests that update a dependency file label Jun 16, 2020
@iancooper iancooper merged commit 9d9d7b5 into master Jun 19, 2020
@dependabot-preview dependabot-preview bot deleted the dependabot/nuget/SimpleInjector-5.0.1 branch June 19, 2020 18:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant