Skip to content

Releases: PawelGerr/Thinktecture.Runtime.Extensions

7.0.0-beta04

07 Nov 22:48
fa7ce89
Compare
Choose a tag to compare
7.0.0-beta04 Pre-release
Pre-release
  • Added ValueObjectFactoryAttribute to create another factory method, which can alter the serialization as well
  • Moved method Validate to a new interface IValueObjectFactory and added a new parameter of type IFormatProvider
  • ValueObjectModelBinderProvider looks for a string-based IValueObjectFactory before falling back to the type of the key-property
  • ValueObjectFactoryAttribute can alter the serialization
  • Moved the method GetKey from IKeyedValueObject to IValueObjectConverter and renamed it to ToValue

7.0.0-beta03

19 Oct 17:41
cc10b75
Compare
Choose a tag to compare
7.0.0-beta03 Pre-release
Pre-release
  • Smart Enums: Switched to FrozenDictionary when running in .NET 8

7.0.0-beta02

19 Oct 17:39
d5a1ebe
Compare
Choose a tag to compare
7.0.0-beta02 Pre-release
Pre-release
  • EF Core 8 RC2

7.0.0-beta01

08 Oct 12:49
69477c1
Compare
Choose a tag to compare
7.0.0-beta01 Pre-release
Pre-release
  • BREAKING: Use SmartEnumAttribute<T> instead of IEnum<T>/IValidatableEnum<T>
  • Added support for EF Core 8

6.4.0

03 Sep 15:48
1c9a687
Compare
Choose a tag to compare
  • Implemented new method Map on smart enums that returns the provided instances for a specific item.

6.3.0

31 Aug 11:24
Compare
Choose a tag to compare
  • Added new enum-gen parameter SkipSwitchMethods
  • SourceGen Logging: file name uniqueness can be disabled with ThinktectureRuntimeExtensions_SourceGenerator_LogFilePathMustBeUnique

6.2.0

02 Apr 09:29
Compare
Choose a tag to compare
  • Added support for properties with init-accessors
  • Source Generator is not just looking for implemented operator-interfaces but checks for user-defined operators as well (useful for DateOnly)
  • The generation of the equality operators can be controlled via EqualityComparisonOperators

6.1.0

22 Mar 21:40
8936366
Compare
Choose a tag to compare
  • Added logging to source generators which is disabled by default

6.0.1

12 Mar 22:05
Compare
Choose a tag to compare
  • [BREAKING] String-members of Value Objects (as of Smart Enums) are compared with StringComparer.OrdinalIgnoreCase by default.
  • Added further comparer accessors for CurrentCulture*IgnoreCase and InvariantCulture*IgnoreCase
  • Optimizations on Source Generator pipelines

6.0.0

12 Mar 22:02
Compare
Choose a tag to compare
  • v6 supports .NET 7 only.
  • Introduced new interface "IEnum<in TKey, T>" which is going to be implemented by the source generator
  • The key equality comparer is static abstract property in .NET 7
  • The property "Items" is "static abstract"
  • Keyed value objects implement IKeyedValueObject<T, TKey>
  • Replaced KeyedValueObjectAttribute with non-generic interface IKeyedValueObject
  • The delegate "Validate" is obsolete
  • Replaced ValueObjectConstructorAttribute with IComplexValueObject
  • Renamed ValueObjectMetadata to KeyedValueObjectMetadata
  • Introduced ComplexValueObjectMetadata because it easier to use and faster then reflection
  • Configurable whether to generate code for ToString()
  • Member comparers are provided via generic attributes instead of strings.
  • ValueObjectTypeConverter doesn't have to be generated thanks to abstract static members
  • Introduced non-generic IValidatableEnum which is used by serializers
  • Renamed ValueObjectIgnoreAttribute to ValueObjectMemberIgnoreAttribute
  • Renamed SkipCompareTo to SkipIComparables
  • Smart Enums and Value Object implement IComparable, IFormattable and IParsable
  • Minimal WebApi is able to bind Smart Enums and Value Objects thanks to IParsable
  • Introduced new setting "SkipIFormattables"
  • ToString doesn't return null
  • Added implementation of IAdditionOperators, ISubtractionOperatorss, IMultiplyOperators, IDivisionOperators, IComparisonOperators
    • Added operators that work with key-member-types
  • Always-valid-smart-enums are considered equal if the object references are equal.
  • Smart enums implement comparison operators as well.
  • ValueObjectEqualityMemberAttribute is obsolete because we have ValueObjectMemberEqualityComparerAttribute