Releases: autofac/Autofac
Releases · autofac/Autofac
v4.0.1
v4.0.0
- New target platform set
netstandard1.1
. This includes support for .NET Core and UWP (Universal Windows Platform). You can read more about the newnetstandard
target framework monikers and the associated compatibility on the .NET Core documentation. - Implementation of the
Microsoft.Extensions.DependencyInjection
abstraction. This can be found in theAutofac.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 callAsSelf
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 serializeDependencyResolutionException
acrossAppDomain
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 anInstancePerLifetimeScope
service attempts to create an instance of itself during its construction. - Added assembly scanning overloads of
AsClosedTypesOf
that accepts aserviceKey
orserviceKeyMapping
for keyed registrations.
v3.5.2
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 aContainerBuilder
in a fluent fashion.
3.1.4
Bug Fixes
- Resolved issue 464:
InjectProperties
now ignores properties that contain a collection of value types (includesIList
,ICollection
andIReadOnlyCollection
).
3.1.3
Bug Fixes
- Resolved issue issue 454: Added support for
AutoActivate/IStartable
onUpdate
.
Changes
- Added support for
IList
,ICollection
,IReadOnlyList
andIReadOnlyCollection
to theCollectionRegistrationSource
.
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 toRegisterAssemblyTypes
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 aConcurrentDictionary
for cachingConstructorInvoker
instances to support multiple containers being present in the sameAppDomain
.
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 ofIStartable.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 theComponentRegistry
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 likeResolvedParameter
. - 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.