Releases: PawelGerr/Thinktecture.Runtime.Extensions
Releases · PawelGerr/Thinktecture.Runtime.Extensions
6.0.0
- 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
6.0.0-beta02
- 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
- 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
5.2.0
5.1.0
- Keyed value objects: Handling for empty strings: EmptyStringInFactoryMethodsYieldsNull
- Smart enums Switch-case replacement
5.0.1
5.0.0
- Removed support for "Extensible" enums because it felt like a nasty hack till the end.
- Base classes of value objects and smart enums are checks for immutability as well.
- Split
Thinktecture.Runtime.Extensions.EntityFrameworkCore
into*.EntityFrameworkCore5
and*.EntityFrameworkCore6
. - Added single-item read-only collections/set/dictionary to reduce memory allocations.
- The name of static property "Empty" of a struct-enum is now configurable.
- Analyzer: ValueObjects must be sealed