Releases: PawelGerr/Thinktecture.Runtime.Extensions
Releases · PawelGerr/Thinktecture.Runtime.Extensions
3.0.0
- (BREAKING) Enum-like classes have been rewritten to use "Roslyn Source Generators" (see wiki: Enum like classes (a.k.a smart enums) for more information)
- New: Immutable value objects (wiki: Immutable value objects)
3.0.0-beta10
- Added new switch "NullInFactoryMethodsYieldsNull" for value type source gen.
- Added extension method "TrimOrNullify" for strings
- (BREAKING) Renamed "ValueType" to "ValueObject"
3.0.0-beta09
- A "class"-key-member can be casted to a "class"-ValueType
- Added extension methods AddReturn and AddChain for
ICollection<T>
- (BREAKING) Deleted source gen for ModelBinderAttribute because ValueTypeModelBinderProvider gives us more control.
3.0.0-beta08
ValueTypeModelBinderProvider
should not try to bind value from body so JSON serializer kicks in- JSON converters should catch
ValidationException
and throwJsonExceptions
ValueTypeModelBinderProvider
should not bind value with[FromService]
as well
3.0.0-beta07
ValueTypeMetadataLookup.Find
triggers the module constructor if there is no metadata for an enum/value type- Extension method
AddEnumAndValueTypeConverters
works with nested owned types now - Moved
EnumConstructorAttribute
,ValueTypeMetadata
andValueTypeMetadataLookup
to folder "Internal" - Extension method
AddEnumAndValueTypeConverters
is using ctors of the value types for reading instead of factories because DB is "source of truth"
3.0.0-beta06
- Analyzer forbids specification of a `IComparer1 on non-keyd value types.
- Made JSON converters, MessagePack formatters and ASP.NET Core model binders to nested classes to prevent accessibility issues.
- Added
ValueTypeIgnoreAttribute
to make members invisible to source generator
3.0.0-beta05
- Made the key arg in
ValidateConstructorArguments
aref
parameter. - Changed the equality comparison (and
GetHashCode
) of the extensible/extended enums, so cloned base items are equal but siblings are not - The result of custom implementation of
CreateInvalidItem
is being checked so it doesn't return a key equals to valid key.
3.0.0-beta04
- Enum-Like classes can be extended
- Extension method for collection: SplitInBuckets
- Added IComparer and IFormattable support to keyd value types
3.0.0-beta03
- Value type members can specify a custom comparer using ValueTypeEqualityMemberAttribute
- Added ASP.NET Core model binders for enums and value types
- Source generator generates factory methods for value types
- Source generator is able to generate JSON and MessagePack converters/formatter for non-keyd value types
3.0.0-beta02
- Added non-generic version of Create to ValueTypeValueConverterFactory (EF)
- Added explicit conversion from key to type (enums and keyd value types)