Skip to content

Version 7 Release Notes

dalton-baker edited this page Jan 11, 2024 · 5 revisions

All version 7's are now deprecated!!

Version 7.0.7

  • Refactoring for readability and efficiency
  • Fixing analyzer bug, int and string generic arguments were not being recognized
  • Removing error analyzer rule for public and internal implementation and service types
  • Adding open generic support.
  • Adding lots of documentation.
  • Reverting project dependencies to Microsoft.Extensions.DependencyInjection.Abstractions, versions 3.1.32 and 8.0.0.

Version 7.0.6

  • Reverting back to reflection based registration, removing code generation.
  • Multi-targeting netstandard2.0 and net8.0.
  • Updating project dependencies to Microsoft.Extensions.DependencyInjection, versions 3.1.32 and 8.0.0.
  • New versions of service collection extensions: AddByAttribute(params object[] tags) and AddByAttribute(Assembly, params object[] tags)

Version 7.0.5

  • Adding project with real dll output to hold attributes.
  • Releasing attribute project, source generator, and analyzer as single project.
  • Moving service provider extensions to {project assembly}.DepRegAttributes

Version 7.0.4

  • Fixing typeof() arguments for Key or Tag. These were being picked up and used as a service type.
  • Allowing internal classes to be registered.
  • Adding warning analyzer for Tags and Keys that are array initializers.
  • Adding support for generic service types.
  • Adding warning analyzer for unbound generics.
  • Updating namespace to the project assembly.

Version 7.0.3

Version 7.0.2

  • Adding Keyed services support.
  • Added Key property on attributes when a project references Microsoft.Extensions.DependencyInjection version 8.0.0 or greater.

Version 7.0.1

  • Fixing nuget package tags and target framework

Version 7.0.0

Updates

  • Rewrote library to use source generation instead of reflection. higher chance of bugs
  • Added an analyzer that tells a developer when an attribute is invalid.
  • Changed tag type from string to object.
  • Generic arguments are now available in C# 11 langage version, instead of .NET 7.0.
  • Adding AddByAttribute() as an alternative to RegisterDependenciesByAttribute(). This is to align more with other common Service Collection extensions.

Breaking Changes

  • Tags are no longer a constructor argument, instead use "Tag" property.
  • Only one tag is allowed per attribute, before it was unlimited.
  • Previously if you called AddByAttribute() with no tag argument, all services for every tag would be added. This is no longer the case, you will only get services for tags you pass into service collection extension.
  • Removing extensibility (i.e. ObjectFactory). This was not useful and extremely complex with source generation.

Clone this wiki locally