Swiftpack.co - Package - unitycontainer/abstractions

Build status License NuGet NuGet

Unity Abstractions

Home for all public interfaces and declarations


Stars: 3
Help us keep the lights on


Used By

Total: 0

Releases - Jan 11, 2018

Maintenance release

Added minor optimizations to enable integration with Microsoft.Extensions.DependencyInjection.2.* - Dec 30, 2017

Maintenance release

Replaced Dictionary<> in HierarchicalLifetimeManager implementation with ConcurrentDictionary<>. - Dec 30, 2017

This release

This release adds new features and interfaces.

New features - Dec 20, 2017

This Release

This release has a lot of modifications and breaking changes. The changes are required to enable new features and optimizations.

Breaking changes

  • #6 Finally added built-in, 'fast' mechanism to check if type is registered bool IsRegistered(...); (High impact)

  • #22 Replaced all references to NamedTypeBuildKey with INamedType. (Low impact)

  • #23 Renamed IDependencyResolverPolicy into IResolverPolicy (Affects resolution of overridden dependencies)

  • #27 Merged FactoryDelegateBuildPlanPolicy with InjectionConstructor (Low impact)

  • #30 Added Parent reference to IBuilderContext (New feature)

  • #31 Added return type and extra argument to PreBuildUp and PostBuildUp (High impact for strategy implementations) - Dec 18, 2017

This Release

This release is primarily addresses extending of strategy chains to support multiple types of strategies. These changes are required to implement custom Property, Method, and Constructor selectors.

Breaking changes

  • #20 A non generic interface IStagedStrategyChain has been retired. Generic interface IStagedStrategyChain<TStageEnum> has been modified to accept strategy type argument. StagedStrategyChain has been modified to allow different strategy types. In order to iterate through strategies just use IEnumerable<...>.

  • #21 IPolicyList no longer accepts object as a Build Key. Legacy API was moved to Extension Methods implementation.

Semantic Versioning

This release breaks several interfaces and should have been released as v3.0.0. It has been long weekend of coding... Apologies for the inconvenience.