Skip to content

Releases: autofac/Autofac

v4.0.0

03 Nov 16:07
Compare
Choose a tag to compare
  • New target platform set netstandard1.1. This includes support for .NET Core and UWP (Universal Windows Platform). You can read more about the new netstandard target framework monikers and the associated compatibility on the .NET Core documentation.
  • Implementation of the Microsoft.Extensions.DependencyInjection abstraction. This can be found in the Autofac.Extensions.DependencyInjection NuGet package.
  • The PreserveExistingDefaults option now works correctly across lifetime scopes when registrations are added during the creation of a child lifetime scope.
  • The ability to provide an IPropertySelector to choose which properties should be property injected.
  • More type and component registration descriptions to exception messages for easier debugging.
  • AsImplementedInterfaces now includes the actual interface being registered preventing the need to call AsSelf as well.
  • Performance improvements in a number of core components.
  • A backwards-compatibility polyfill for the Serializable attribute so that .NET 4.5.1 consumers can serialize DependencyResolutionException across AppDomain etc. as was possible prior to migrating to PCL.
  • Details are provided on the specific registration that fails when a tagged lifetime scope can't be found.
  • A DependencyResolutionException is thrown if an InstancePerLifetimeScope service attempts to create an instance of itself during its construction.
  • Added assembly scanning overloads of AsClosedTypesOf that accepts a serviceKey or serviceKeyMapping for keyed registrations.

v3.5.2

18 Oct 16:41
Compare
Choose a tag to compare

First release after moving to GitHub.

3.5.0

  • Resolved issue 512: Added Windows Phone 8.1 (wpa81) target to NuGet package and switched to build under Profile328 (portable-net4+sl5+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1)

3.3.0

Bug Fixes

  • Resolved issue issue 269: Func<T,U,...> should not be resolvable if any parameter types are duplicated.

3.2.0

Bug Fixes

  • Resolved issue issue 462: Switched ContainerBuilder.Update optional parameter to two separate method overloads.

Changes

  • Resolved Issue issue 474: Added a new IModuleRegistrar interface so module registrations can be chained off of a ContainerBuilder in a fluent fashion.

3.1.4

Bug Fixes

  • Resolved issue 464: InjectProperties now ignores properties that contain a collection of value types (includes IList, ICollection and IReadOnlyCollection).

3.1.3

Bug Fixes

  • Resolved issue issue 454: Added support for AutoActivate/IStartable on Update.

Changes

  • Added support for IList, ICollection, IReadOnlyList and IReadOnlyCollection to the CollectionRegistrationSource.

3.1.0

Changes

  • The package name and version is written into the AssemblyDescription attibute. This allows the package information to be seen in Visual Studio avoiding confusion with the assembly version that remains at the major.

  • Added ability to configure AnyConcreteTypeNotAlreadyRegisteredSource registrations.

    builder.RegisterSource(new AnyConcreteTypeNotAlreadyRegisteredSource()
    .WithRegistrationsAs(rb => rb.InstancePerLifetimeScope()));

  • Moved Autofac.Configuration to a separate NuGet package.

  • Added non-generic overload for ResolveKeyed.

Bug Fixes

  • Issue 413: Resolving a SingleInstance registration locks during subsequent resolves, even if the instance has already been created.

3.0.2

Changes

  • Enabled XML documentation for all projects and added missing comments.
  • Minor performance improvements in reflection based activation.

Bug Fixes

  • Resolved Issue 421: Generic parameters constrained with complex generic types fail to resolve.

3.0.1

Changes

  • Rollback of Issue 397 (Nested lifetime scopes aren't disposed when the parent is disposed) due to memory leak.

3.0.0

Changes

  • Added the inner exception message to DependencyResolutionException message for easier troubleshooting.

Bug Fixes

  • Issue 352: Security exception in Silverlight 5
  • Issue 394: ContainerBuilder.RegisterAssemblyType depends on assembly list order
  • Issue 343: Include inner exception message in outer exception message when wrapping exceptions from constructors

3.0.0 Beta 2

Changes

  • Added AutoActivate() registration extension to flag components to be automatically resolved on container build.
  • Added a RegisterTypes extension equivalent to RegisterAssemblyTypes but which allows you to pass in a specific list of types rather than simply scanning assemblies.

Bug Fixes

  • Issue 305: Add RegisterAssemblyTypes overload which gets a list of types.
  • Issue 365: Configured Nested Containers Lose LimitType on Component Registrations - Affects WCF Service Resolution.
  • Issue 361: DynamicProxy interception does not work for WCF clients.
  • Issue 397: Nested lifetime scopes aren't disposed when the parent is disposed.
  • Issue 388: Wrapper around IStartable to make a component implicitly activated.

3.0.0 Beta

Changes

  • Portable Class Library. You will be able to target the following frameworks with Autofac 3.0:
  • .NET Framework 4 and higher
  • Silverlight 5
  • .NET for Windows Store apps
  • Windows Phone 8
  • Single Solution (Core and Extras)
  • Semantic Versioning
  • SymbolSource support
  • Class based metadata
  • Matching multiple lifetime scopes

Bug Fixes

  • Issue 376: Exception while trying to throw an exception in Metro app
  • Issue 386: Support configuration reading from XML file that is not app.config
  • Issue 378: Make Container.Empty immutable
  • Issue 358: Portable build warnings in a Metro style app
  • Issue 352: Provide Silverlight 5 Support

2.6.3.862

Bug Fixes

  • Issue 373: The ConstructorParameterBinding now uses a ConcurrentDictionary for caching ConstructorInvoker instances to support multiple containers being present in the same AppDomain.

2.6.2.859

Changes

  • Module Scanning feature.
  • Performance Improvements.

2.6.1

Changes

  • Autofac can now be used with .NET Portable Class Libraries (download only on the project site. (The Windows Phone 7 build now uses this configuration too.)
  • Autofac.dll is now clear of any issues found by SecAnnotate.exe.

2.5

Changes

  • Module.ThisAssembly simplifies implementation of modules that scan their own assembly.
  • Windows Phone 7 and 7.1 support.
  • ILifetimeScope without affecting the parent scope.
  • Introduced ContainerBuildOptions to control invocation of IStartable.Start() under unit tests.
  • Container.Empty is now a property rather than a field (protection from inadvertent updates.
  • Removed broken/obsolete examples from source tree (better examples are available elsewhere online).
  • ComponentRegistry.Register() is now safe for use under multiple threads
  • Tightened up behavior when correct constructor to use under reflection activator is ambiguous (now throws rather than choosing nondeterministically).
  • Improved exception messages.

Bug Fixes

  • Issue 329: types are filtered by compatibilty before invoking key mapping functions when scanning assemblies.
  • Issue 333: enable RegisterAssemblyTypes(...).PreserveExistingDefaults().
  • Issue 312: allow ContainerBuilder.Update() on the ComponentRegistry of any.
  • Issue 327: allow autowiring of enum properties.
  • Issue 319: support list and dictionary literals in XML configuration.
  • Issue 330: corrections to generic type constraint checking where the constraint type is an interface.
  • Issue 227: breaking change additional options (and enum rather than boolean parameter) for PropertiesAutowired().
  • Issue 311: fixed potential lifetime issues when injecting into MVC filter attributes.
  • Issue 309: fixed some issues in TypeExtensions.IsClosedTypeOf().

2.4.5

Changes

  • Several bug fixes and improved exception messages.
  • The awkward but very useful IContainerAwareComponent introduced in 2.4 has been deprecated and morphed into a much friendlier and more useful Startable implementation.
  • Autofac now consistently throws DependencyResolutionException (or a subclass) whenever fatal errors occur during composition.

2.4

Changes

  • Complete NuGet Packages for Autofac and its sub-features.
  • Improved Decorator Support.
  • Removed Older Silverlight Versions from Supported Builds.
  • Events and Interfaces to Support Tracing.
  • .AsImplementedInterfaces() is now supported on non-scanning registrations.
  • IDisposable is no longer considered a service by .AsImplementedInterfaces().
  • Additional eager checks for generic type/service compatibility at registration time.
  • An additional .WithParameter() overload has been added, accepting predicate and value accessor like ResolvedParameter.
  • Extension methods for common predicates on System.Type are now public for use with scanning, e.g. Except(t => t.IsClosedTypeOf(x)).

Bug Fixes

  • Fixed bug issue 288 – resolve all failing in customised lifetime scopes when one component supports multiple interfaces.