Releases: PawelGerr/Thinktecture.Runtime.Extensions
Releases · PawelGerr/Thinktecture.Runtime.Extensions
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)
3.0.0-beta01
- Enum-like classes are generated by a source generator instead of using reflection. The source gen is generates the constructor and "CreateInvalidItem" as well.
- The name of the key property can be changed, i.e. be something different than "Key"
- There are 2 types of enum: IEnum and IValidatableEnum
- IValidatableEnum can be a struct as well, i.e. not just a class
- Added source generator for immutable value types
- Added partial method ValidateConstructorArguments to validate the ctor arguments
- Added roslyn analyzer and code fixes for better experience
1.1.0
New
- Convenience methods for empty
Action<...>
and empty read-only collections of non-generic type likeIEnumerable
and generic types likeIReadOnlyList<T>
andIReadOnlyDictionary<TKey,TValue>
Misc
- Added a sample for integration of enum-like classes with Entity Framework Core
- Switched samples and tests to .NET Core 2.1