Implemented IComparable
interface for DataRate
and DataSize
.
Add health check mechanism.
Format bytes array to base64 string.
Wrap <error>
, <secret>
, <cyclic>
into quotes.
Use ToString
on ISettingsNode
instances with ConfigurationPrinter
.
Use ToString
method only when Parse
/TryParse
is available.
Added non-generic Bind
version to DefaultSettingsBinder
Added net6.0
target.
Disabled inheritance for BindByAttribute.
Improved performance by removing a closure.
ErrorCallbackDecorator: introduced a cooldown on exception deduplication (#43).
Fixed bug with Secret
attribute on classes.
Fixed bug with BindByAttribute
and composite binders.
Fixed bug with multiple custom generic binders defined for one generic class.
Added support for OmitConstructorsAttribute
.
Change default MaxSourceCacheSize setting value to 500.
Implemented #31
Added support for ConcurrentDictionary to DictionaryBinder.
Added constraint validator implementation based on user-provided expressions.
Search private constructors in ConstructorBinder.
Fixed #32
Support parsing base64 string to byte array.
- DynamicTypesHelper: handle arrays in custom attributes when implementing interfaces.
- TimeSpanParser, DateTimeParser and DateTimeOffsetParser are public now.
- Fixed "Duplicate type name within an assembly" error arising when DynamicTypesHelper tries to implement the same generic interface with different type arguments.
- ConfigurationPrinter no longer sorts property names alphabetically.
- Added
InitialIndent
print setting for beautiful logging.
- Fixed #21
- ConfigurationProvider: added HasSourceFor and TrySetupSourceFor methods.
- Default binder is now capable to bind classes with a single one-argument constructor.
- ClassStructBinder now tolerates aliases with duplicate names (comparison is case-insensitive).
- Added support for aliases that allow to provide alternative keys for field and properties instead of their names in the model.
- ConfigurationProvider: SetupSourceFor no longer fails even after Get or Observe if called with same source (by reference).
- Added SecretBinder — a binder that treats all models as if they were marked with a SecretAttribute.
- ConfigurationProvider now allows to set up sources for yet unused types even if other types have been already used.
- ConfigurationProvider: added a non-generic overload of
SetupSourceFor
method.
- ConfigurationProvider: added new
Default
property for library developers to enable reuse of a shared static provider instance.
- Fixed SequenceToken indentation.
- ConfigurationPrinter: added support for GUID as dictionary key.
- Performance optimizations in binders producing up to 2x speed-up.
- Fixed a failure occuring when validating types with nested properties of the same type, such as
DateTime
.
- Fixed #17
- Fixed #13
- Fixed #14
ConfigurationPrinter
: respect SecretAttribute applied to types.ConfigurationPrinter
: allow to print settings instance without censoring secret values.ConfigurationPrinter
: added support for JSON format.- Added an API to register custom attributes to function like built-in
SecretAttribute
(seeSecurityHelper
).
- Fixed #15
- Added support for interfaces as settings models.
- Implemented "hot interfaces" feature: see the new
CreateHot
extension forIConfigurationProvider
.
Fixed possible assembly resolution issues caused by this library.
Initial prerelease.