Breaking changes.
- Refactor and improve
Copy
methods onDynamicObj
:ShallowCopyDynamicProperties
: Copies all dynamic properties to a newDynamicObj
instance without trying to prevent reference equality.ShallowCopyDynamicPropertiesTo
: Copies all dynamic properties to a targetDynamicObj
instance without trying to prevent reference equality.DeepCopyProperties
: Recursively deep copy aDynamicObj
instance (or derived class) with all (static and dynamic) properties. Reinstantiation - and therefore prevention of reference equality - is possible forDynamicObj
,array|list|ResizeArray<DynamicObj>
, and classes implementingSystem.Icloneable
DeepCopyPropertiesTo
: Recursively deep copies all (static and dynamic) properties to a targetDynamicObj
instance (or derived class). Reinstantiation - and therefore prevention of reference equality - is possible forDynamicObj
,array|list|ResizeArray<DynamicObj>
, and classes implementingSystem.Icloneable
Copy
method was therefore removed- Expose
CopyUtils
class that contains our generic deep copy attempt
- fix GetHashCode member failing for null property values
- Undo
DynObj.combine
working with#DynamicObj
as input - this caused issues with ncombining nested DOs of types that inherited from DynamicObj. The type signature has been fixed toDynamicObj
(without the flexible#
)
- Fix DynObj functions not being inlined (#39)
- Rework API naming
- Many improvements to DynObj API module
- Fix serialization with Newtonsoft.Json
- Add conditional compilation rules to transpilation-specific sections
-
Additions:
-
Bugfixes:
* - Make project fable-compatible
* - Rework project structure by splitting into DynamicObj and DynamicObj.Immutable
* - Add a bunch of tests
* - Backwards incompatible because of renaming and removing some members
* - [Use a strong name for the assembly](https://github.com/CSBiology/DynamicObj/pull/19). This may cause backwards incompatibility on netfx. (thanks [@WhiteBlackGoose](https://github.com/WhiteBlackGoose))
* Fix up some TFM confusions
* - [Rename IDO combine to `combineWith`, which now also preserves the type of the second IDO.](https://github.com/CSBiology/DynamicObj/pull/12/files) (thanks [@WhiteBlackGoose](https://github.com/WhiteBlackGoose))
* - Target .NET 6
* - Add `combine` for IDO
* - [Add `ImmutableDynamicObj`](https://github.com/CSBiology/DynamicObj/pull/4) as the immutable counterpart of `DynamicObj` (thanks [@WhiteBlackGoose](https://github.com/WhiteBlackGoose))
* - Add print formatters for both `DynamicObj` and `ImmutableDynamicObj`
* - [Enable Json serialization for ImmutableDynamicObj](https://github.com/CSBiology/DynamicObj/commit/e7474d2658a234bb94299f12de30625e04f5f407) (thanks [@WhiteBlackGoose](https://github.com/WhiteBlackGoose))
* - target netstandard2.0 and .net5.0
* - add custom Equality and GetHashcode (thanks [@WhiteBlackGoose](https://github.com/WhiteBlackGoose))
* - publish symbols
* - target netstandard2.0
* - Add copy utils
* initial release