Skip to content

6.0.0

Compare
Choose a tag to compare
@PawelGerr PawelGerr released this 12 Mar 22:02
· 210 commits to master since this release
  • 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