All Versions
Latest Version
Avg Release Cycle
60 days
Latest Release
906 days ago

Changelog History
Page 2

  • v4.9.3 Changes

    July 23, 2019
    • ๐Ÿ›  Fix #976 - Throw an exception if a lifetime scope is created with a duplicate tag
    • ๐Ÿ›  Fix #972 - Resolving services registered as open generics with generic constraints throws ComponentNotRegisteredException
    • ๐Ÿ›  Fix #999 - Support decoration of component returned from lambda expression and cast as interface
    • Faster RegisterAssemblyTypes by putting slow custom attribute check last
  • v4.9.2 Changes

    March 24, 2019
    • โฌ‡๏ธ Reduce the verbosity of activator exception messages; reverts #343.
    • ๐Ÿ‘ Resolved #932: Added serialization constructor to DependencyResolutionException for supported framework targets.
    • ๐Ÿ›  Fixed an issue where a decorator was only applied if the decorator interface was the first service assigned to the registration. Found while investigating #963.
    • Resolved #965: Do not apply the decorator if already applied, or if the registration is for an adapter.
  • v4.9.1 Changes

    February 18, 2019
    • ๐Ÿ›  Fix for #960 - ExternalRegistrySource reuses ExternalComponentRegistration instances causing ObjectDisposedException
    • ๐Ÿ”’ Made the backing field for ServiceRegistrationInfo.IsInitialized volatile to prevent the ComponentRegistry taking an avoidable lock due to reordering
  • v4.9.0 Changes

    February 10, 2019
    • Decorator enhancements
    • ๐Ÿ‘ Switched from symbol server to SourceLink support
    • #919: Memory optimisations
    • โฌ‡๏ธ Reduced locking in ComponentRegistry to improve concurrency of service resolution (extracted from PR #953)
    • ๐Ÿ›  Fix for #635 SingleInstance lock. Use lock only if instance not created yet.
    • Alternative to #924: Changed max resolve limit to static for reflection access
    • ๐Ÿ‘Œ Improved performance of CollectionRegistrationSource
    • ๐Ÿ‘ป Resolved #927: Clarified duplicate lifetime scope exception message with respect to Owned<T>
    • ๐Ÿ›  Fix for #889 and #932 - Add .NET Standard 2.0 target and make DependencyResolutionException serializable
    • ๐Ÿ›  Fix for #929: Resetting resolve op activation stack on succeed or fail to allow try/catch in lambda registrations
    • Inherit Registered callback in child scopes (closes #218)
    • ๐Ÿšš Move registration source extension method to a dedicated class and make consistent with module registration
    • ๐Ÿ›  Fix for #218: Module.AttachToComponentRegistration() detects registrations in nested scopes
    • Throw ObjectDisposedException on activation if activator is disposed
    • โฌ†๏ธ Solution upgraded to .NET Core SDK 2.2.101
  • v4.9.0-beta1 Changes

    August 28, 2018
    • Decorator enhancements
    • ๐Ÿ‘ Switched from symbol server to SourceLink support
    • #919: Memory optimisations
    • โฌ†๏ธ Solution upgraded to Upgrade to .NET Core SDK 2.1.200
    • Alternative to #924: Changed max resolve limit to static for reflection access
  • v4.8.1 Changes

    May 09, 2018
    • ๐ŸŽ Minor performance improvements.
    • ๐Ÿ›  Fix #916: IStartable that creates child lifetime scope during Start() no longer tries to activate itself.
  • v4.8.0 Changes

    April 19, 2018

    โช Reverted behavior from #897 change to re-include internal and nested private classes for backwards compatibility. Added a new PublicOnly() filter method to enable opt-in to data encapsulation when scanning for assembly types.

    builder.RegisterAssemblyTypes(asm) .PublicOnly() .Where(t =\> t.Name.EndsWith("Repository")) .Except\<MyUnwantedRepository\>();
  • v4.7.1 Changes

    April 17, 2018

    ๐Ÿš€ Issues addressed in this release:

    • #567: AutoActivate and IStartable now correctly get run if added to child lifetime scope registrations.
    • #897: Assembly scanning registrations now properly ignore internal and private nested classes - only public classes will be found when scanning.
    • ๐Ÿ›  #907: Fixed issue where AsSelf() and AsImplementedInterfaces() incorrectly ignored custom constructor finders (FindConstructorsWith()).
  • v4.7.0 Changes

    April 10, 2018

    ๐Ÿš€ Issues addressed in this release:

    • #624: Components registered as IStartable and AutoActivate() will be started in dependency order.
    • ๐Ÿ— #733: Building a container will fail with an exception if you RegisterType<T>() a type that doesn't have a public constructor.
    • #824: Parameters passed to a Resolve() operation for a decorated object will pass by the decorators and only be provided to the object being decorated.
    • #846: Parameters passed to a Resolve() operation will be provided to the constructor selector so they can be used to influence which constructor gets used (IConstructorSelector.SelectConstructorBinding()). This is a minor breaking change for the IConstructorSelector interface but very few people have implemented custom constructor selectors so a major version increment wasn't used.
    • ๐Ÿ‘ป #882: An exception is now thrown if you try to create a new lifetime scope with a tag that has already been assigned to a parent lifetime scope.
  • v4.6.2 Changes

    October 16, 2017