Skip to content

Releases: PawelGerr/Thinktecture.Runtime.Extensions

8.0.0-beta01

19 Aug 05:44
acab0c2
Compare
Choose a tag to compare
8.0.0-beta01 Pre-release
Pre-release
  • Migration from v7 to v8
  • [Breaking] Replaced (equality-based) Switch/Map with index-based ones.
    • Reason: perf + dozens of (generic) overloads make the methods difficult to use.

7.5.0

05 Sep 21:03
6ed62cd
Compare
Choose a tag to compare
  • Added overload for TryCreate with validation error.

7.4.0

05 Sep 21:02
42babfd
Compare
Choose a tag to compare
  • Smart enum ctor should ignore abstract properties.
  • Fixed analysis of Switch/Map with context.

7.3.0

18 Apr 18:33
bea16c8
Compare
Choose a tag to compare
  • Handling of Nullable<T> should be done by System.Text.Json
  • Non-generic ValueObjectJsonConverterFactory prioritizes JsonConverterAttribute over its own converter (by default)
  • ValueObjectMessageFormatterResolver prioritizes MessagePackFormatterAttribute over its own formatter (by default)

7.2.1

14 Apr 09:44
df3dbaa
Compare
Choose a tag to compare
  • Removed explicit reference to System.Text.Json
  • Dropped support for EF Core 5

7.2.0

31 Jan 18:36
dcd4e25
Compare
Choose a tag to compare
  • System.Text.Json: String-based keyed value objects (and smart enums) can be used as dictionary keys

7.1.0

11 Dec 20:29
4a5e7bd
Compare
Choose a tag to compare
  • Value object ctor visibility can be changed via ConstructorAccessModifier

7.0.0

10 Dec 12:27
6c704ee
Compare
Choose a tag to compare
  • See Migration from v6 to v7
  • [BREAKING] Use SmartEnumAttribute<T> instead of IEnum<T>/IValidatableEnum<T>
  • [BREAKING] Smart Enums and Value Object are using (custom) ValidationError instead of ValidationResult
    • Use ValueObjectValidationErrorAttribute<TError> to define the type of a custom validation error
  • The names of the factory methods Create and TryCreate can be changed.
  • Added support for keyless Smart Enums
  • [BREAKING] Split ValueObjectAttribute in keyed ValueObjectAttribute<T> and ComplexValueObject
    • Key member is implemented by the source generator by default.
    • Key member generation can be disabled via SkipKeyMember
    • Attribute property KeyPropertyName has been renamed to KeyMemberName
    • Key member can be renamed via attribute-property KeyMemberName
    • Access modifier of the key member can be configured via KeyMemberAccessModifier
    • Key member kind can be configured via KeyMemberKind
    • Key member comparers can be configured via ValueObjectKeyMemberComparerAttribute and ValueObjectKeyMemberEqualityComparerAttribute
    • IEnum<TKey>.KeyEqualityComparer has been replaced by ValueObjectKeyMemberEqualityComparerAttribute
    • default (equality) comparer of string-based keyed value object is OrdinalIgnoreCase (as with Smart Enums)
  • Added support for EF Core 8
    • [BREAKING] Renamed extension method AddEnumAndValueObjectConverters to AddValueObjectConverters
  • [C# 12] Analyzer prevents the usage of primary constructors with Smart Enums and Value Objects.
  • Json converter for complex value object uses converters instead of reader/writer, this is approach is better because it supports custom converters.
  • Several performance optimizations

6.5.2

17 Nov 16:59
e5ca209
Compare
Choose a tag to compare
  • [SourceGen] Generate Map/Switch if the number of items is less than 1000

6.5.1

13 Nov 07:24
7ecd860
Compare
Choose a tag to compare
  • Bugfix: [Source Gen] Use ComputeHashCode for collections