Bot releases are hidden (Show)
Published by aaubry over 3 years ago
Serializer
or Deserializer
was not thread-safe,Published by aaubry over 3 years ago
Improve compliance with the official YAML test suite: #467, #469 and #475.
Make YamlMemberAttribute.DefaultValuesHandling actually usable. Fixes #466.
Actually inherit YamlIgnore attributes: #481.
Published by aaubry over 3 years ago
Published by aaubry over 3 years ago
Published by aaubry over 3 years ago
This fixes a critical bug that was causing failures while parsing Yaml documents. If you are using release 9.1.0, please use this version instead.
Published by aaubry over 3 years ago
This fixes another critical bug that was causing failures while parsing Yaml documents. If you are using release 9.1.1, please use this version instead.
Published by aaubry over 3 years ago
Published by aaubry over 3 years ago
Published by aaubry about 5 years ago
Change the default value handling behavior. Fixes #427
This is a breaking change to the default behaviour of the serializer, which will now always emit null and default values.
It is possible to configure this behaviour by using the ConfigureDefaultValuesHandling
method on SerializerBuilder
.
Add default implementations for the following non-generic collections to DefaultObjectFactory
:
Remove obsolete and unused SerializationOptions
enum. Fixes #438
Throw descriptive exceptions when using the "linq" methods of YamlNode
. Relates to #437
Published by aaubry about 5 years ago
Added support for nullable references and netstandard 2.1.
Enabling nullable references exposed many potential bugs where the code assumed
that a reference would not be null, but where it was possible for it to be null.
In most cases this did not cause an error because of the way the code was being used.
Because fixing these problems required some breaking changes, a few improvements were made to the code base to take advantage of modern C# constructs.
Overall, the following breaking changes were made:
Removed the default constructor from most exceptions, because that would cause some uninitialized properties.
Made the ParsingEvent
concretizations sealed. There is no point in inheriting from these because the library assumes that they form a closed set.
Made many classes sealed, since they are not intended to be extended.
YamlDocument
now throws an exception if is has no root node after loading. This should only happen when loading from an IParser
that returns invalid data or is in an invalid state.
The following APIs were made obsolete (but still work as before):
Refactored the extension methods to IParser
to have better names with a more sensible semantic. The previous extension methods, Expect<T>
, Allow<T>
, Peek<T>
and Accept<T>
are still available but have been deprecated. The new extension methods are:
T Consume<T>() where T : ParsingEvent
Ensures that the current event is of the specified type, returns it and moves to the next event. Throws an exception if the next event is not of the expected type.
bool TryConsume<T>(out T @event) where T : ParsingEvent
If the event is of the specified type, returns it and moves to the next event, otherwise returns null.
T Require<T>() where T : ParsingEvent
Enforces that the current event is of the specified type.
bool Accept<T>(out T @event) where T : ParsingEvent
Checks whether the current event is of the specified type.
Made the constructor of all naming conventions obsolete. Instead each has a static property named Instance
. There was no point in creating multiple instances of those classes.
Instead of:
new SerializerBuilder()
.WithNamingConvention(new CamelCaseNamingConvention());
Use:
new SerializerBuilder()
.WithNamingConvention(CamelCaseNamingConvention.Instance);
Published by aaubry about 5 years ago
Improves conformance with the official test suite:
Also adds the license file to nupkg to fix NU5125 warning.
Published by aaubry about 5 years ago
Tests from yaml-test-suite have been added to the project and an effort has been made to improve the conformance, thanks to @am11:
YamlStream
to an IEmitter
Published by aaubry over 5 years ago
This release merges the YamlDotNet.Signed and YamlDotNet packages, as discussed in #390.
This change has the following consequences:
The assemblies in the YamlDotNet package will now have strong names.
This is a breaking change. If you depend on a library that depends on a
previous version of YamlDotNet, you will first need to update that library.
The YamlDotNet.Signed package will cease to be published.
The code should be updated to depend on YamlDotNet.
Published by aaubry over 5 years ago
YamlDotNet will now also serialize public fields. This feature is enabled by default, but it can be disabled by calling IgnoreFields() on the SerializerBuilder or DeserializerBuilder.
Published by aaubry over 5 years ago
New features:
Published by aaubry over 5 years ago
New features:
Bug fixes:
Published by aaubry about 6 years ago
Improvements:
Published by aaubry over 6 years ago
This release adds the repository location to the package metadata. No functional changes were made.