Releases: autofac/Autofac
v9.0.0
Updated Autofac for .NET 10. New current set of target frameworks: net10.0;net8.0;netstandard2.1;netstandard2.0
Breaking Changes
Dropped support for net6.0, net7.0.
Additional Changes
- Added support for
net10.0. - Updated dependencies:
- System.Diagnostics.DiagnosticSource 8.0.1 => 10.0.0
- Microsoft.Bcl.AsyncInterfaces 8.0.0 => 10.0.0
Full Changelog: v8.4.0...v9.0.0
v8.4.0
Minor breaking change: The shim RequiresUnreferencedCodeAttribute has been changed from public to internal (#1462/#1463 - thanks @prochnowc!). This will only affect people targeting older/lower .NET standard frameworks who also rely on the shim attribute in Autofac. While it's technically breaking, it didn't seem like a great reason to do a full major release due to the edge case nature of the set of applications/users affected.
v8.3.0
What's Changed
- Corrected nullable markup on
IIndex<K,V>.TryGetValue()since it may return null on failure. - Composite services can now be keyed (#1458 - thanks @syko9000!)
- Packages for core Autofac are no longer published to MyGet. Instead, builds are now available from GitHub Packages This also means the actual packages themselves won't be manually attached to the release - you can get them from the package source now.
Full Changelog: v8.2.1...v8.3.0
v8.2.1
v8.2.0
What's Changed
- Fix #1437: Improve type cache handling for generic type arguments with respect to
AssemblyLoadContextdisposal (#1438 - thanks @hemirunner426!) - Added overloads for
RegisterServiceMiddlewareto assist with interceptors/decorators (#1439 - thanks @idiotsky!)
Full Changelog: v8.1.1...v8.2.0
v8.1.1
What's Changed
- Fix boxing in
ResolveRequest.operator==()(#1430, thanks @SergeiPavlov!) - Remove redundant null-checking in resolution extensions (#1428, thanks @SergeiPavlov!)
- Fix #1427: Ensure
WithPropertyregistration methods consistently allow null values (#1428)
Full Changelog: v8.1.0...v8.1.1
v8.1.0
What's Changed
- Optimized
requiredmember caching (#1415 - thanks @SergeiPavlov!) - Correctly handle polyfilled
requiredinfrastructure attributes by (#1421 - thanks @DoctorVanGogh!) - Improve memory management in registered services tracking (#1423 - thanks @snaumenko-st!)
- Fix #1330: Generic decorators attached to generics that expose multiple service types should be handled properly (#1424)
Full Changelog: v8.0.0...v8.1.0
v8.0.0
Breaking Changes
- Removed
netcoreapp3.1support/testing (#1401). - Converted
ResolveRequestinto areadonly struct(#1397 - thanks @SergeiPavlov!).
Additional Changes
- Added
net8.0target (#1401). - Replaced use of Moq in tests with NSubstitute (#1390 - thanks @aydjay!).
Full Changelog: v7.1.0...v8.0.0
v7.1.0
What's Changed
- Fix #1388: Re-enabled
RegsiterTypesfiltering. This was an accidental behavior regression where theRegisterTypesmethod wouldn't filter out non-registerable types. RegisterType<T>andRegisterType(Type t)will now throw when non-registerable types are provided, for examplecontainerBuilder.RegisterType<IInterface>()(you can't register interfaces - you can register thingsAs<IInterface>). This used to throw at container build time; now it throws atRegisterTypetime and it has a more precise error message so you can handle these issues more proactively.
Full Changelog: v7.0.1...v7.1.0
v7.0.1
What's Changed
- Reduced lock contention in
LifetimeScope.CreateSharedInstance(thanks @botinko) - Optimized
Autofac.Features.OpenGenerics.OpenGenericServiceBinder.TryBindOpenGenericTypedService(thanks @SergeiPavlov)
Full Changelog: v7.0.0...v7.0.1