From f42440e14edb21dc0e6e7ec2ed865acd97df41cd Mon Sep 17 00:00:00 2001 From: kMutagene Date: Mon, 27 Jan 2025 08:24:20 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20c77be?= =?UTF-8?q?4c18f2e15d623b9a534ee5218ace62b035b=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 4 +- index.json | 2 +- reference/dynamicobj-copyutils.html | 65 +++- reference/dynamicobj-dynamicobj.html | 158 +++++++--- reference/dynamicobj-dynobj.html | 153 ++++++++- .../dynamicobj-fablejs-dictionaries.html | 291 ++++++++++++++++++ reference/dynamicobj-fablejs-interfaces.html | 8 +- ...dynamicobj-fablejs-propertydescriptor.html | 28 +- reference/dynamicobj-fablejs.html | 119 ++++--- .../dynamicobj-fablepy-dictionaries.html | 230 ++++++++++++++ reference/dynamicobj-fablepy-dictionary.html | 8 +- reference/dynamicobj-fablepy-interfaces.html | 8 +- .../dynamicobj-fablepy-propertyobject.html | 8 +- ...namicobj-fablepy-propertyobjectmodule.html | 36 +-- reference/dynamicobj-fablepy.html | 107 ++++--- reference/dynamicobj-hashcodes.html | 28 +- reference/dynamicobj-immutabledynamicobj.html | 52 ++-- ...amicobj-immutabledynamicobjextensions.html | 16 +- ...cobj-immutabledynamicobjjsonconverter.html | 4 +- reference/dynamicobj-operators.html | 16 +- reference/dynamicobj-propertyhelper.html | 36 +-- reference/dynamicobj-reflectionutils.html | 24 +- reference/dynamicobj.html | 2 +- 23 files changed, 1109 insertions(+), 294 deletions(-) create mode 100644 reference/dynamicobj-fablejs-dictionaries.html create mode 100644 reference/dynamicobj-fablepy-dictionaries.html diff --git a/index.html b/index.html index 30ca843..a3d0c04 100644 --- a/index.html +++ b/index.html @@ -199,8 +199,8 @@

SerializationMultiple items
namespace DynamicObj

--------------------
type DynamicObj = inherit DynamicObject new: unit -> DynamicObj - member DeepCopyProperties: unit -> obj - member DeepCopyPropertiesTo: target: #DynamicObj * ?overWrite: bool -> unit + member DeepCopyProperties: ?includeInstanceProperties: bool -> obj + member DeepCopyPropertiesTo: target: #DynamicObj * ?overWrite: bool * ?includeInstanceProperties: bool -> unit override Equals: o: obj -> bool override GetDynamicMemberNames: unit -> IEnumerable<string> override GetHashCode: unit -> int diff --git a/index.json b/index.json index dd117d6..9fc093c 100644 --- a/index.json +++ b/index.json @@ -1 +1 @@ -[{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj.html","title":"DynamicObj","content":"DynObj \nFableJS \nFablePy \nHashCodes \nReflectionUtils \nCopyUtils \nDynamicObj \nPropertyHelper \nOperators \nImmutableDynamicObj \nImmutableDynamicObjExtensions \nImmutableDynamicObjJsonConverter","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html","title":"DynObj","content":"DynObj \n This module contains lots of API functions for DynamicObj. \n\n These functions are not static methods on the DynamicObj type itself because that type is designed to be inherited from, \n and a lot of these functions might not make sense as static methods on inheriting types. \nDynObj.ofDict \nofDict \nDynObj.ofSeq \nofSeq \nDynObj.ofList \nofList \nDynObj.ofArray \nofArray \nDynObj.combine \ncombine \nDynObj.tryGetTypedPropertyValue \ntryGetTypedPropertyValue \nDynObj.setProperty \nsetProperty \nDynObj.withProperty \nwithProperty \nDynObj.setOptionalProperty \nsetOptionalProperty \nDynObj.withOptionalProperty \nwithOptionalProperty \nDynObj.setOptionalPropertyBy \nsetOptionalPropertyBy \nDynObj.withOptionalPropertyBy \nwithOptionalPropertyBy \nDynObj.tryGetPropertyValue \ntryGetPropertyValue \nDynObj.removeProperty \nremoveProperty \nDynObj.withoutProperty \nwithoutProperty \nDynObj.format \nformat \nDynObj.print \nprint","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#ofDict","title":"DynObj.ofDict","content":"DynObj.ofDict \nofDict \n\n Creates a new DynamicObj from a Dictionary containing dynamic properties.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#ofSeq","title":"DynObj.ofSeq","content":"DynObj.ofSeq \nofSeq \n\n Creates a new DynamicObj from a sequence of key value pairs containing dynamic properties.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#ofList","title":"DynObj.ofList","content":"DynObj.ofList \nofList \n\n Creates a new DynamicObj from a list of key value pairs containing dynamic properties.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#ofArray","title":"DynObj.ofArray","content":"DynObj.ofArray \nofArray \n\n Creates a new DynamicObj from an array of key value pairs containing dynamic properties.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#combine","title":"DynObj.combine","content":"DynObj.combine \ncombine \n\n Combines the dynamic properties of the second DynamicObj onto the first. \n\n In case of duplicate property names the members of the second object override those of the first.\n \nThis function mutates the first input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#tryGetTypedPropertyValue","title":"DynObj.tryGetTypedPropertyValue","content":"DynObj.tryGetTypedPropertyValue \ntryGetTypedPropertyValue \n\n Returns Some(\u0027TPropertyValue) when a dynamic (or static) property with the given name and type exists on the input, otherwise None.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#setProperty","title":"DynObj.setProperty","content":"DynObj.setProperty \nsetProperty \n\n Sets the dynamic (or static) property value with the given name on the given DynamicObj, creating a new dynamic property if none exists.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#withProperty","title":"DynObj.withProperty","content":"DynObj.withProperty \nwithProperty \n\n Sets the dynamic (or static) property value with the given name, creating a new dynamic property if none exists on the given DynamicObj and returns it.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#setOptionalProperty","title":"DynObj.setOptionalProperty","content":"DynObj.setOptionalProperty \nsetOptionalProperty \n\n Sets the dynamic (or static) property value with the given name on the given DynamicObj if the value is Some(\u0027TPropertyValue), creating a new dynamic property if none exists.\n If the given propertyValue is None, does nothing to the input DynamicObj.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#withOptionalProperty","title":"DynObj.withOptionalProperty","content":"DynObj.withOptionalProperty \nwithOptionalProperty \n\n Sets the dynamic (or static) property value with the given name on the given DynamicObj if the value is Some(\u0027TPropertyValue), creating a new dynamic property if none exists, and returns it.\n If the given propertyValue is None, does nothing to the input DynamicObj.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#setOptionalPropertyBy","title":"DynObj.setOptionalPropertyBy","content":"DynObj.setOptionalPropertyBy \nsetOptionalPropertyBy \n\n Sets the given dynamic (or static) property with the result of a mapping function applied to the given property value on the given DynamicObj if the value is Some(\u0027TPropertyValue).\n If the given propertyValue is None, does nothing to the input DynamicObj.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#withOptionalPropertyBy","title":"DynObj.withOptionalPropertyBy","content":"DynObj.withOptionalPropertyBy \nwithOptionalPropertyBy \n\n Sets the given dynamic (or static) property with the result of a mapping function applied to the given property value on the given DynamicObj if the value is Some(\u0027TPropertyValue) and returns it.\n If the given propertyValue is None, returns the unchanged DynamicObj.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#tryGetPropertyValue","title":"DynObj.tryGetPropertyValue","content":"DynObj.tryGetPropertyValue \ntryGetPropertyValue \n\n Returns Some(boxed property value) if a dynamic (or static) property with the given name exists on the input, otherwise None.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#removeProperty","title":"DynObj.removeProperty","content":"DynObj.removeProperty \nremoveProperty \n\n Removes any dynamic property with the given name from the input DynamicObj.\n If the property is static and mutable, it will be set to null.\n Static immutable properties cannot be removed.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#withoutProperty","title":"DynObj.withoutProperty","content":"DynObj.withoutProperty \nwithoutProperty \n\n Removes any dynamic property with the given name from the input DynamicObj and returns it.\n If the property is static and mutable, it will be set to null.\n Static immutable properties cannot be removed.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#format","title":"DynObj.format","content":"DynObj.format \nformat \n\n Returns a formatted string containing all static and dynamic properties of the given DynamicObj\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#print","title":"DynObj.print","content":"DynObj.print \nprint \n\n Prints a formatted string containing all static and dynamic properties of the given DynamicObj\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html","title":"FableJS","content":"FableJS \n \nFableJS.Interfaces \nInterfaces \nFableJS.PropertyDescriptor \nPropertyDescriptor \nFableJS.getOwnPropertyNames \ngetOwnPropertyNames \nFableJS.getPrototype \ngetPrototype \nFableJS.getStaticPropertyNames \ngetStaticPropertyNames \nFableJS.setPropertyValue \nsetPropertyValue \nFableJS.createSetter \ncreateSetter \nFableJS.removeStaticPropertyValue \nremoveStaticPropertyValue \nFableJS.deleteDynamicPropertyValue \ndeleteDynamicPropertyValue \nFableJS.createRemover \ncreateRemover \nFableJS.getPropertyValue \ngetPropertyValue \nFableJS.createGetter \ncreateGetter \nFableJS.tryGetPropertyDescriptor \ntryGetPropertyDescriptor \nFableJS.tryGetStaticPropertyDescriptor \ntryGetStaticPropertyDescriptor \nFableJS.tryStaticPropertyHelperFromDescriptor \ntryStaticPropertyHelperFromDescriptor \nFableJS.tryGetStaticPropertyHelper \ntryGetStaticPropertyHelper \nFableJS.getStaticPropertyHelpers \ngetStaticPropertyHelpers \nFableJS.tryGetDynamicPropertyDescriptor \ntryGetDynamicPropertyDescriptor \nFableJS.transpiledPropertyRegex \ntranspiledPropertyRegex \nFableJS.isTranspiledPropertyHelper \nisTranspiledPropertyHelper \nFableJS.tryDynamicPropertyHelperFromDescriptor \ntryDynamicPropertyHelperFromDescriptor \nFableJS.tryGetDynamicPropertyHelper \ntryGetDynamicPropertyHelper \nFableJS.getDynamicPropertyHelpers \ngetDynamicPropertyHelpers \nFableJS.getPropertyHelpers \ngetPropertyHelpers \nFableJS.getPropertyNames \ngetPropertyNames","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getOwnPropertyNames","title":"FableJS.getOwnPropertyNames","content":"FableJS.getOwnPropertyNames \ngetOwnPropertyNames \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getPrototype","title":"FableJS.getPrototype","content":"FableJS.getPrototype \ngetPrototype \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getStaticPropertyNames","title":"FableJS.getStaticPropertyNames","content":"FableJS.getStaticPropertyNames \ngetStaticPropertyNames \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#setPropertyValue","title":"FableJS.setPropertyValue","content":"FableJS.setPropertyValue \nsetPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#createSetter","title":"FableJS.createSetter","content":"FableJS.createSetter \ncreateSetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#removeStaticPropertyValue","title":"FableJS.removeStaticPropertyValue","content":"FableJS.removeStaticPropertyValue \nremoveStaticPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#deleteDynamicPropertyValue","title":"FableJS.deleteDynamicPropertyValue","content":"FableJS.deleteDynamicPropertyValue \ndeleteDynamicPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#createRemover","title":"FableJS.createRemover","content":"FableJS.createRemover \ncreateRemover \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getPropertyValue","title":"FableJS.getPropertyValue","content":"FableJS.getPropertyValue \ngetPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#createGetter","title":"FableJS.createGetter","content":"FableJS.createGetter \ncreateGetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#tryGetPropertyDescriptor","title":"FableJS.tryGetPropertyDescriptor","content":"FableJS.tryGetPropertyDescriptor \ntryGetPropertyDescriptor \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#tryGetStaticPropertyDescriptor","title":"FableJS.tryGetStaticPropertyDescriptor","content":"FableJS.tryGetStaticPropertyDescriptor \ntryGetStaticPropertyDescriptor \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#tryStaticPropertyHelperFromDescriptor","title":"FableJS.tryStaticPropertyHelperFromDescriptor","content":"FableJS.tryStaticPropertyHelperFromDescriptor \ntryStaticPropertyHelperFromDescriptor \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#tryGetStaticPropertyHelper","title":"FableJS.tryGetStaticPropertyHelper","content":"FableJS.tryGetStaticPropertyHelper \ntryGetStaticPropertyHelper \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getStaticPropertyHelpers","title":"FableJS.getStaticPropertyHelpers","content":"FableJS.getStaticPropertyHelpers \ngetStaticPropertyHelpers \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#tryGetDynamicPropertyDescriptor","title":"FableJS.tryGetDynamicPropertyDescriptor","content":"FableJS.tryGetDynamicPropertyDescriptor \ntryGetDynamicPropertyDescriptor \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#transpiledPropertyRegex","title":"FableJS.transpiledPropertyRegex","content":"FableJS.transpiledPropertyRegex \ntranspiledPropertyRegex \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#isTranspiledPropertyHelper","title":"FableJS.isTranspiledPropertyHelper","content":"FableJS.isTranspiledPropertyHelper \nisTranspiledPropertyHelper \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#tryDynamicPropertyHelperFromDescriptor","title":"FableJS.tryDynamicPropertyHelperFromDescriptor","content":"FableJS.tryDynamicPropertyHelperFromDescriptor \ntryDynamicPropertyHelperFromDescriptor \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#tryGetDynamicPropertyHelper","title":"FableJS.tryGetDynamicPropertyHelper","content":"FableJS.tryGetDynamicPropertyHelper \ntryGetDynamicPropertyHelper \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getDynamicPropertyHelpers","title":"FableJS.getDynamicPropertyHelpers","content":"FableJS.getDynamicPropertyHelpers \ngetDynamicPropertyHelpers \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getPropertyHelpers","title":"FableJS.getPropertyHelpers","content":"FableJS.getPropertyHelpers \ngetPropertyHelpers \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getPropertyNames","title":"FableJS.getPropertyNames","content":"FableJS.getPropertyNames \ngetPropertyNames \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-interfaces.html","title":"Interfaces","content":"Interfaces \n \nInterfaces.implementsICloneable \nimplementsICloneable \nInterfaces.cloneICloneable \ncloneICloneable","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-interfaces.html#implementsICloneable","title":"Interfaces.implementsICloneable","content":"Interfaces.implementsICloneable \nimplementsICloneable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-interfaces.html#cloneICloneable","title":"Interfaces.cloneICloneable","content":"Interfaces.cloneICloneable \ncloneICloneable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html","title":"PropertyDescriptor","content":"PropertyDescriptor \n \nPropertyDescriptor.tryGetPropertyValue \ntryGetPropertyValue \nPropertyDescriptor.tryGetIsWritable \ntryGetIsWritable \nPropertyDescriptor.containsGetter \ncontainsGetter \nPropertyDescriptor.containsSetter \ncontainsSetter \nPropertyDescriptor.isWritable \nisWritable \nPropertyDescriptor.valueIsFunction \nvalueIsFunction \nPropertyDescriptor.isFunction \nisFunction","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html#tryGetPropertyValue","title":"PropertyDescriptor.tryGetPropertyValue","content":"PropertyDescriptor.tryGetPropertyValue \ntryGetPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html#tryGetIsWritable","title":"PropertyDescriptor.tryGetIsWritable","content":"PropertyDescriptor.tryGetIsWritable \ntryGetIsWritable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html#containsGetter","title":"PropertyDescriptor.containsGetter","content":"PropertyDescriptor.containsGetter \ncontainsGetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html#containsSetter","title":"PropertyDescriptor.containsSetter","content":"PropertyDescriptor.containsSetter \ncontainsSetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html#isWritable","title":"PropertyDescriptor.isWritable","content":"PropertyDescriptor.isWritable \nisWritable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html#valueIsFunction","title":"PropertyDescriptor.valueIsFunction","content":"PropertyDescriptor.valueIsFunction \nvalueIsFunction \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html#isFunction","title":"PropertyDescriptor.isFunction","content":"PropertyDescriptor.isFunction \nisFunction \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html","title":"FablePy","content":"FablePy \n \nFablePy.Dictionary \nDictionary \nFablePy.Interfaces \nInterfaces \nFablePy.PropertyObject \nPropertyObject \nFablePy.PropertyObject \nPropertyObject \nFablePy.getPropertyValue \ngetPropertyValue \nFablePy.createGetter \ncreateGetter \nFablePy.setPropertyValue \nsetPropertyValue \nFablePy.createSetter \ncreateSetter \nFablePy.getOwnMemberObjects \ngetOwnMemberObjects \nFablePy.getClass \ngetClass \nFablePy.getStaticPropertyObjects \ngetStaticPropertyObjects \nFablePy.removeStaticPropertyValue \nremoveStaticPropertyValue \nFablePy.deleteDynamicPropertyValue \ndeleteDynamicPropertyValue \nFablePy.createRemover \ncreateRemover \nFablePy.getMemberObject \ngetMemberObject \nFablePy.tryGetPropertyObject \ntryGetPropertyObject \nFablePy.tryGetDynamicPropertyHelper \ntryGetDynamicPropertyHelper \nFablePy.tryGetStaticPropertyHelper \ntryGetStaticPropertyHelper \nFablePy.transpiledPropertyRegex \ntranspiledPropertyRegex \nFablePy.isTranspiledPropertyHelper \nisTranspiledPropertyHelper \nFablePy.getDynamicPropertyHelpers \ngetDynamicPropertyHelpers \nFablePy.getStaticPropertyHelpers \ngetStaticPropertyHelpers \nFablePy.getPropertyHelpers \ngetPropertyHelpers \nFablePy.getPropertyNames \ngetPropertyNames","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getPropertyValue","title":"FablePy.getPropertyValue","content":"FablePy.getPropertyValue \ngetPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#createGetter","title":"FablePy.createGetter","content":"FablePy.createGetter \ncreateGetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#setPropertyValue","title":"FablePy.setPropertyValue","content":"FablePy.setPropertyValue \nsetPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#createSetter","title":"FablePy.createSetter","content":"FablePy.createSetter \ncreateSetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getOwnMemberObjects","title":"FablePy.getOwnMemberObjects","content":"FablePy.getOwnMemberObjects \ngetOwnMemberObjects \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getClass","title":"FablePy.getClass","content":"FablePy.getClass \ngetClass \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getStaticPropertyObjects","title":"FablePy.getStaticPropertyObjects","content":"FablePy.getStaticPropertyObjects \ngetStaticPropertyObjects \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#removeStaticPropertyValue","title":"FablePy.removeStaticPropertyValue","content":"FablePy.removeStaticPropertyValue \nremoveStaticPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#deleteDynamicPropertyValue","title":"FablePy.deleteDynamicPropertyValue","content":"FablePy.deleteDynamicPropertyValue \ndeleteDynamicPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#createRemover","title":"FablePy.createRemover","content":"FablePy.createRemover \ncreateRemover \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getMemberObject","title":"FablePy.getMemberObject","content":"FablePy.getMemberObject \ngetMemberObject \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#tryGetPropertyObject","title":"FablePy.tryGetPropertyObject","content":"FablePy.tryGetPropertyObject \ntryGetPropertyObject \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#tryGetDynamicPropertyHelper","title":"FablePy.tryGetDynamicPropertyHelper","content":"FablePy.tryGetDynamicPropertyHelper \ntryGetDynamicPropertyHelper \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#tryGetStaticPropertyHelper","title":"FablePy.tryGetStaticPropertyHelper","content":"FablePy.tryGetStaticPropertyHelper \ntryGetStaticPropertyHelper \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#transpiledPropertyRegex","title":"FablePy.transpiledPropertyRegex","content":"FablePy.transpiledPropertyRegex \ntranspiledPropertyRegex \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#isTranspiledPropertyHelper","title":"FablePy.isTranspiledPropertyHelper","content":"FablePy.isTranspiledPropertyHelper \nisTranspiledPropertyHelper \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getDynamicPropertyHelpers","title":"FablePy.getDynamicPropertyHelpers","content":"FablePy.getDynamicPropertyHelpers \ngetDynamicPropertyHelpers \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getStaticPropertyHelpers","title":"FablePy.getStaticPropertyHelpers","content":"FablePy.getStaticPropertyHelpers \ngetStaticPropertyHelpers \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getPropertyHelpers","title":"FablePy.getPropertyHelpers","content":"FablePy.getPropertyHelpers \ngetPropertyHelpers \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getPropertyNames","title":"FablePy.getPropertyNames","content":"FablePy.getPropertyNames \ngetPropertyNames \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-dictionary.html","title":"Dictionary","content":"Dictionary \n \nDictionary.ofSeq \nofSeq \nDictionary.choose \nchoose","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-dictionary.html#ofSeq","title":"Dictionary.ofSeq","content":"Dictionary.ofSeq \nofSeq \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-dictionary.html#choose","title":"Dictionary.choose","content":"Dictionary.choose \nchoose \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-interfaces.html","title":"Interfaces","content":"Interfaces \n \nInterfaces.implementsICloneable \nimplementsICloneable \nInterfaces.cloneICloneable \ncloneICloneable","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-interfaces.html#implementsICloneable","title":"Interfaces.implementsICloneable","content":"Interfaces.implementsICloneable \nimplementsICloneable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-interfaces.html#cloneICloneable","title":"Interfaces.cloneICloneable","content":"Interfaces.cloneICloneable \ncloneICloneable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html","title":"PropertyObject","content":"PropertyObject \n \nPropertyObject.tryGetGetter \ntryGetGetter \nPropertyObject.tryGetSetter \ntryGetSetter \nPropertyObject.getGetter \ngetGetter \nPropertyObject.getSetter \ngetSetter \nPropertyObject.containsGetter \ncontainsGetter \nPropertyObject.containsSetter \ncontainsSetter \nPropertyObject.isWritable \nisWritable \nPropertyObject.isProperty \nisProperty \nPropertyObject.tryProperty \ntryProperty","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#tryGetGetter","title":"PropertyObject.tryGetGetter","content":"PropertyObject.tryGetGetter \ntryGetGetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#tryGetSetter","title":"PropertyObject.tryGetSetter","content":"PropertyObject.tryGetSetter \ntryGetSetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#getGetter","title":"PropertyObject.getGetter","content":"PropertyObject.getGetter \ngetGetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#getSetter","title":"PropertyObject.getSetter","content":"PropertyObject.getSetter \ngetSetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#containsGetter","title":"PropertyObject.containsGetter","content":"PropertyObject.containsGetter \ncontainsGetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#containsSetter","title":"PropertyObject.containsSetter","content":"PropertyObject.containsSetter \ncontainsSetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#isWritable","title":"PropertyObject.isWritable","content":"PropertyObject.isWritable \nisWritable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#isProperty","title":"PropertyObject.isProperty","content":"PropertyObject.isProperty \nisProperty \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#tryProperty","title":"PropertyObject.tryProperty","content":"PropertyObject.tryProperty \ntryProperty \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobject.html","title":"PropertyObject","content":"PropertyObject \n \nPropertyObject.fset \nfset \nPropertyObject.fget \nfget","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobject.html#fset","title":"PropertyObject.fset","content":"PropertyObject.fset \nfset \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobject.html#fget","title":"PropertyObject.fget","content":"PropertyObject.fget \nfget \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html","title":"HashCodes","content":"HashCodes \n \nHashCodes.mergeHashes \nmergeHashes \nHashCodes.hashDateTime \nhashDateTime \nHashCodes.hash \nhash \nHashCodes.boxHashOption \nboxHashOption \nHashCodes.boxHashArray \nboxHashArray \nHashCodes.boxHashSeq \nboxHashSeq \nHashCodes.boxHashKeyValSeq \nboxHashKeyValSeq","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html#mergeHashes","title":"HashCodes.mergeHashes","content":"HashCodes.mergeHashes \nmergeHashes \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html#hashDateTime","title":"HashCodes.hashDateTime","content":"HashCodes.hashDateTime \nhashDateTime \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html#hash","title":"HashCodes.hash","content":"HashCodes.hash \nhash \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html#boxHashOption","title":"HashCodes.boxHashOption","content":"HashCodes.boxHashOption \nboxHashOption \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html#boxHashArray","title":"HashCodes.boxHashArray","content":"HashCodes.boxHashArray \nboxHashArray \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html#boxHashSeq","title":"HashCodes.boxHashSeq","content":"HashCodes.boxHashSeq \nboxHashSeq \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html#boxHashKeyValSeq","title":"HashCodes.boxHashKeyValSeq","content":"HashCodes.boxHashKeyValSeq \nboxHashKeyValSeq \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-reflectionutils.html","title":"ReflectionUtils","content":"ReflectionUtils \n \nReflectionUtils.getStaticProperties \ngetStaticProperties \nReflectionUtils.tryGetStaticPropertyInfo \ntryGetStaticPropertyInfo \nReflectionUtils.trySetPropertyValue \ntrySetPropertyValue \nReflectionUtils.tryGetPropertyValue \ntryGetPropertyValue \nReflectionUtils.tryGetPropertyValueAs \ntryGetPropertyValueAs \nReflectionUtils.removeProperty \nremoveProperty","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-reflectionutils.html#getStaticProperties","title":"ReflectionUtils.getStaticProperties","content":"ReflectionUtils.getStaticProperties \ngetStaticProperties \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-reflectionutils.html#tryGetStaticPropertyInfo","title":"ReflectionUtils.tryGetStaticPropertyInfo","content":"ReflectionUtils.tryGetStaticPropertyInfo \ntryGetStaticPropertyInfo \n Try to get the PropertyInfo by name using reflection","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-reflectionutils.html#trySetPropertyValue","title":"ReflectionUtils.trySetPropertyValue","content":"ReflectionUtils.trySetPropertyValue \ntrySetPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-reflectionutils.html#tryGetPropertyValue","title":"ReflectionUtils.tryGetPropertyValue","content":"ReflectionUtils.tryGetPropertyValue \ntryGetPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-reflectionutils.html#tryGetPropertyValueAs","title":"ReflectionUtils.tryGetPropertyValueAs","content":"ReflectionUtils.tryGetPropertyValueAs \ntryGetPropertyValueAs \n Gets property value as \u0027a option using reflection. Cast to \u0027a","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-reflectionutils.html#removeProperty","title":"ReflectionUtils.removeProperty","content":"ReflectionUtils.removeProperty \nremoveProperty \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-copyutils.html","title":"CopyUtils","content":"CopyUtils \n \nCopyUtils.tryDeepCopyObj \ntryDeepCopyObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-copyutils.html#tryDeepCopyObj","title":"CopyUtils.tryDeepCopyObj","content":"CopyUtils.tryDeepCopyObj \ntryDeepCopyObj \n internal helper function to deep copy a boxed object (if possible)","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html","title":"DynamicObj","content":"DynamicObj \n \nDynamicObj.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060 \nDynamicObj.DeepCopyProperties \nDeepCopyProperties \nDynamicObj.DeepCopyPropertiesTo \nDeepCopyPropertiesTo \nDynamicObj.GetProperties \nGetProperties \nDynamicObj.GetPropertyHelpers \nGetPropertyHelpers \nDynamicObj.GetPropertyNames \nGetPropertyNames \nDynamicObj.GetPropertyValue \nGetPropertyValue \nDynamicObj.RemoveProperty \nRemoveProperty \nDynamicObj.SetProperty \nSetProperty \nDynamicObj.ShallowCopyDynamicProperties \nShallowCopyDynamicProperties \nDynamicObj.ShallowCopyDynamicPropertiesTo \nShallowCopyDynamicPropertiesTo \nDynamicObj.TryGetDynamicPropertyHelper \nTryGetDynamicPropertyHelper \nDynamicObj.TryGetPropertyHelper \nTryGetPropertyHelper \nDynamicObj.TryGetPropertyValue \nTryGetPropertyValue \nDynamicObj.TryGetStaticPropertyHelper \nTryGetStaticPropertyHelper \nDynamicObj.TryGetTypedPropertyValue \nTryGetTypedPropertyValue \nDynamicObj.Properties \nProperties \nDynamicObj.ofDict \nofDict \nDynamicObj.(?) \n(?) \nDynamicObj.(?\u003C-) \n(?\u003C-)","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#\u0060\u0060.ctor\u0060\u0060","title":"DynamicObj.\u0060\u0060.ctor\u0060\u0060","content":"DynamicObj.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060 \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#DeepCopyProperties","title":"DynamicObj.DeepCopyProperties","content":"DynamicObj.DeepCopyProperties \nDeepCopyProperties \n\n Recursively deep copy a \u0060DynamicObj\u0060 instance (or derived class) with **all** (static and dynamic) properties. Reinstantiation - and therefore prevention of reference equality - is possible for \u0060DynamicObj\u0060, \u0060array|list|ResizeArray\u003CDynamicObj\u003E\u0060, and classes implementing \u0060System.Icloneable\u0060\n \n On the deep copy, as many properties as possible are re-instantiated as new objects, meaning the \n copy has as little reference equal properties as possible.\n \n The nature of DynamicObj however means that it is impossible to reliably deep copy all properties, as\n their type is not known on runtime and the contructors of the types are not known.\n\n The following cases are handled (in this precedence):\n\n - Basic F# types (int, float, bool, string, char, byte, sbyte, int16, uint16, int32, uint32, int64, uint64, single, decimal)\n\n - array\u003CDynamicObj\u003E, list\u003CDynamicObj\u003E, ResizeArray\u003CDynamicObj\u003E: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.\n\n - System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.\n\n - DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively.\n if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance.\n\n Note on Classes that inherit from DynamicObj:\n\n Classes that inherit from DynamicObj will match the \u0060DynamicObj\u0060 typecheck if they do not implement ICloneable.\n The deep coopied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties.\n It should be possible to \u0027recover\u0027 the original type by checking if the needed properties exist as dynamic properties,\n and then passing them to the class constructor if needed.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#DeepCopyPropertiesTo","title":"DynamicObj.DeepCopyPropertiesTo","content":"DynamicObj.DeepCopyPropertiesTo \nDeepCopyPropertiesTo \n\n Recursively deep copies **all** (static and dynamic) properties to a **target** \u0060DynamicObj\u0060 instance (or derived class). Reinstantiation - and therefore prevention of reference equality - is possible for \u0060DynamicObj\u0060, \u0060array|list|ResizeArray\u003CDynamicObj\u003E\u0060, and classes implementing \u0060System.Icloneable\u0060\n \n As many properties as possible are re-instantiated as new objects, meaning the \n copy has as little reference equal properties as possible.\n \n The nature of DynamicObj however means that it is impossible to reliably deep copy all properties, as\n their type is not known on runtime and the contructors of the types are not known.\n\n The following cases are handled (in this precedence):\n\n - Basic F# types (int, float, bool, string, char, byte, sbyte, int16, uint16, int32, uint32, int64, uint64, single, decimal)\n\n - array\u003CDynamicObj\u003E, list\u003CDynamicObj\u003E, ResizeArray\u003CDynamicObj\u003E: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.\n\n - System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.\n\n - DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively.\n if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance.\n\n Note on Classes that inherit from DynamicObj:\n\n Classes that inherit from DynamicObj will match the \u0060DynamicObj\u0060 typecheck if they do not implement ICloneable.\n The deep coopied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties.\n It should be possible to \u0027recover\u0027 the original type by checking if the needed properties exist as dynamic properties,\n and then passing them to the class constructor if needed.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#GetProperties","title":"DynamicObj.GetProperties","content":"DynamicObj.GetProperties \nGetProperties \n\n Returns a sequence of all dynamic properties as a key value pair of the property names and the boxed property values.\n\n When includeInstanceProperties is set to true, instance properties (= \u0027static\u0027 properties on the class) are included in the result.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#GetPropertyHelpers","title":"DynamicObj.GetPropertyHelpers","content":"DynamicObj.GetPropertyHelpers \nGetPropertyHelpers \n\n Returns PropertyHelpers for all dynamic properties of the DynamicObj.\n\n When includeInstanceProperties is set to true, instance properties (= \u0027static\u0027 properties on the class) are included in the result.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#GetPropertyNames","title":"DynamicObj.GetPropertyNames","content":"DynamicObj.GetPropertyNames \nGetPropertyNames \n\n Returns a sequence of all dynamic property names.\n\n When includeInstanceProperties is set to true, instance properties (= \u0027static\u0027 properties on the class) are included in the result.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#GetPropertyValue","title":"DynamicObj.GetPropertyValue","content":"DynamicObj.GetPropertyValue \nGetPropertyValue \n\n Returns the boxed property value of the dynamic (or static) property with the given name.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#RemoveProperty","title":"DynamicObj.RemoveProperty","content":"DynamicObj.RemoveProperty \nRemoveProperty \n\n Removes any dynamic property with the given name from the input DynamicObj.\n If the property is static and mutable, it will be set to null.\n Static immutable properties cannot be removed.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#SetProperty","title":"DynamicObj.SetProperty","content":"DynamicObj.SetProperty \nSetProperty \n\n Sets the dynamic (or static) property value with the given name, creating a new dynamic property if none exists.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#ShallowCopyDynamicProperties","title":"DynamicObj.ShallowCopyDynamicProperties","content":"DynamicObj.ShallowCopyDynamicProperties \nShallowCopyDynamicProperties \n Copies all dynamic properties to a new \u0060DynamicObj\u0060 instance without trying to prevent reference equality.\n\n Note that this function does not attempt to do any deep copying. \n The dynamic properties of the source will be copied as references to the target. \n If any of those properties are mutable or themselves DynamicObj instances, changes to the properties on the source will be reflected in the target.","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#ShallowCopyDynamicPropertiesTo","title":"DynamicObj.ShallowCopyDynamicPropertiesTo","content":"DynamicObj.ShallowCopyDynamicPropertiesTo \nShallowCopyDynamicPropertiesTo \n\n Copies all dynamic properties to a target \u0060DynamicObj\u0060 instance without trying to prevent reference equality.\n\n Note that this function does not attempt to do any deep copying. \n The dynamic properties of the source will be copied as references to the target. \n If any of those properties are mutable or themselves DynamicObj instances, changes to the properties on the source will be reflected in the target.\n\n If overWrite is set to true, existing properties on the target object will be overwritten.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#TryGetDynamicPropertyHelper","title":"DynamicObj.TryGetDynamicPropertyHelper","content":"DynamicObj.TryGetDynamicPropertyHelper \nTryGetDynamicPropertyHelper \n\n Returns Some(PropertyHelper) if a dynamic property with the given name exists, otherwise None.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#TryGetPropertyHelper","title":"DynamicObj.TryGetPropertyHelper","content":"DynamicObj.TryGetPropertyHelper \nTryGetPropertyHelper \n\n Returns Some(PropertyHelper) if a property (static or dynamic) with the given name exists, otherwise None.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#TryGetPropertyValue","title":"DynamicObj.TryGetPropertyValue","content":"DynamicObj.TryGetPropertyValue \nTryGetPropertyValue \n\n Returns Some(boxed property value) if a dynamic (or static) property with the given name exists, otherwise None.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#TryGetStaticPropertyHelper","title":"DynamicObj.TryGetStaticPropertyHelper","content":"DynamicObj.TryGetStaticPropertyHelper \nTryGetStaticPropertyHelper \n\n Returns Some(PropertyHelper) if a static property with the given name exists, otherwise None.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#TryGetTypedPropertyValue","title":"DynamicObj.TryGetTypedPropertyValue","content":"DynamicObj.TryGetTypedPropertyValue \nTryGetTypedPropertyValue \n\n Returns Some(\u0027TPropertyValue) when a dynamic (or static) property with the given name and type exists, otherwise None.\n\n This method is not Fable-compatible and can therefore not be used in code that will be transpiled.\n \nThis method is not Fable-compatible and can therefore not be used in code that will be transpiled.","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#Properties","title":"DynamicObj.Properties","content":"DynamicObj.Properties \nProperties \n A dictionary of dynamic boxed properties","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#ofDict","title":"DynamicObj.ofDict","content":"DynamicObj.ofDict \nofDict \n\n Creates a new DynamicObj from a Dictionary containing dynamic properties.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#(?)","title":"DynamicObj.(?)","content":"DynamicObj.(?) \n(?) \n\n Operator to access a property by name\n\n This method is not Fable-compatible and can therefore not be used in code that will be transpiled.\n \nThis method is not Fable-compatible and can therefore not be used in code that will be transpiled.","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#(?\u003C-)","title":"DynamicObj.(?\u003C-)","content":"DynamicObj.(?\u003C-) \n(?\u003C-) \n\n Operator to set a property value\n\n This method is not Fable-compatible and can therefore not be used in code that will be transpiled.\n \nThis method is not Fable-compatible and can therefore not be used in code that will be transpiled.","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html","title":"PropertyHelper","content":"PropertyHelper \n \nPropertyHelper.fromPropertyInfo \nfromPropertyInfo \nPropertyHelper.Name \nName \nPropertyHelper.IsStatic \nIsStatic \nPropertyHelper.IsDynamic \nIsDynamic \nPropertyHelper.IsMutable \nIsMutable \nPropertyHelper.IsImmutable \nIsImmutable \nPropertyHelper.GetValue \nGetValue \nPropertyHelper.SetValue \nSetValue \nPropertyHelper.RemoveValue \nRemoveValue","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#fromPropertyInfo","title":"PropertyHelper.fromPropertyInfo","content":"PropertyHelper.fromPropertyInfo \nfromPropertyInfo \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#Name","title":"PropertyHelper.Name","content":"PropertyHelper.Name \nName \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#IsStatic","title":"PropertyHelper.IsStatic","content":"PropertyHelper.IsStatic \nIsStatic \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#IsDynamic","title":"PropertyHelper.IsDynamic","content":"PropertyHelper.IsDynamic \nIsDynamic \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#IsMutable","title":"PropertyHelper.IsMutable","content":"PropertyHelper.IsMutable \nIsMutable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#IsImmutable","title":"PropertyHelper.IsImmutable","content":"PropertyHelper.IsImmutable \nIsImmutable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#GetValue","title":"PropertyHelper.GetValue","content":"PropertyHelper.GetValue \nGetValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#SetValue","title":"PropertyHelper.SetValue","content":"PropertyHelper.SetValue \nSetValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#RemoveValue","title":"PropertyHelper.RemoveValue","content":"PropertyHelper.RemoveValue \nRemoveValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-operators.html","title":"Operators","content":"Operators \n \nOperators.(\u002B\u002B) \n(\u002B\u002B) \nOperators.(--) \n(--) \nOperators.(\u002B\u002B?) \n(\u002B\u002B?) \nOperators.(\u002B\u002B??) \n(\u002B\u002B??)","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-operators.html#(\u002B\u002B)","title":"Operators.(\u002B\u002B)","content":"Operators.(\u002B\u002B) \n(\u002B\u002B) \n Returns an instance with:\n 1. this property added if it wasn\u0027t present\n 2. this property updated otherwise","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-operators.html#(--)","title":"Operators.(--)","content":"Operators.(--) \n(--) \n Returns an instance:\n 1. the same if there was no requested property\n 2. without the requested property if there was","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-operators.html#(\u002B\u002B?)","title":"Operators.(\u002B\u002B?)","content":"Operators.(\u002B\u002B?) \n(\u002B\u002B?) \n Acts as (\u002B\u002B) if the value is Some,\n returns the same object otherwise","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-operators.html#(\u002B\u002B??)","title":"Operators.(\u002B\u002B??)","content":"Operators.(\u002B\u002B??) \n(\u002B\u002B??) \n Acts as (\u002B\u002B?) but maps the valid value \n through the last argument","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html","title":"ImmutableDynamicObj","content":"ImmutableDynamicObj \n Represents an DynamicObj\u0027s counterpart\n with immutability enabled only. \nImmutableDynamicObj.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060 \nImmutableDynamicObj.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060 \nImmutableDynamicObj.TryGetTypedValue \nTryGetTypedValue \nImmutableDynamicObj.TryGetValue \nTryGetValue \nImmutableDynamicObj.Item \nItem \nImmutableDynamicObj.add \nadd \nImmutableDynamicObj.addOpt \naddOpt \nImmutableDynamicObj.addOptBy \naddOptBy \nImmutableDynamicObj.combineWith \ncombineWith \nImmutableDynamicObj.format \nformat \nImmutableDynamicObj.print \nprint \nImmutableDynamicObj.remove \nremove \nImmutableDynamicObj.empty \nempty","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#\u0060\u0060.ctor\u0060\u0060","title":"ImmutableDynamicObj.\u0060\u0060.ctor\u0060\u0060","content":"ImmutableDynamicObj.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060 \n Empty instance","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#\u0060\u0060.ctor\u0060\u0060","title":"ImmutableDynamicObj.\u0060\u0060.ctor\u0060\u0060","content":"ImmutableDynamicObj.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060 \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#TryGetTypedValue","title":"ImmutableDynamicObj.TryGetTypedValue","content":"ImmutableDynamicObj.TryGetTypedValue \nTryGetTypedValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#TryGetValue","title":"ImmutableDynamicObj.TryGetValue","content":"ImmutableDynamicObj.TryGetValue \nTryGetValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#Item","title":"ImmutableDynamicObj.Item","content":"ImmutableDynamicObj.Item \nItem \n Indexes ; if no key found, throws","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#add","title":"ImmutableDynamicObj.add","content":"ImmutableDynamicObj.add \nadd \n Returns an instance with:\n 1. this property added if it wasn\u0027t present\n 2. this property updated otherwise","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#addOpt","title":"ImmutableDynamicObj.addOpt","content":"ImmutableDynamicObj.addOpt \naddOpt \n Acts as add if the value is Some,\n returns the same object otherwise","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#addOptBy","title":"ImmutableDynamicObj.addOptBy","content":"ImmutableDynamicObj.addOptBy \naddOptBy \n Acts as addOpt but maps the valid value \n through the last argument","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#combineWith","title":"ImmutableDynamicObj.combineWith","content":"ImmutableDynamicObj.combineWith \ncombineWith \nMerges the second ImmutableDynamicObj into the first one (that is, keeps the first one\u0027s type). \nWarning: In case of duplicate property names the members of the second object override those of the first.","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#format","title":"ImmutableDynamicObj.format","content":"ImmutableDynamicObj.format \nformat \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#print","title":"ImmutableDynamicObj.print","content":"ImmutableDynamicObj.print \nprint \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#remove","title":"ImmutableDynamicObj.remove","content":"ImmutableDynamicObj.remove \nremove \n Returns an instance:\n 1. the same if there was no requested property\n 2. without the requested property if there was","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#empty","title":"ImmutableDynamicObj.empty","content":"ImmutableDynamicObj.empty \nempty \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobjextensions.html","title":"ImmutableDynamicObjExtensions","content":"ImmutableDynamicObjExtensions \n \nImmutableDynamicObjExtensions.AddItem \nAddItem \nImmutableDynamicObjExtensions.Format \nFormat \nImmutableDynamicObjExtensions.Print \nPrint \nImmutableDynamicObjExtensions.RemoveItem \nRemoveItem","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobjextensions.html#AddItem","title":"ImmutableDynamicObjExtensions.AddItem","content":"ImmutableDynamicObjExtensions.AddItem \nAddItem \n Returns an instance with:\n 1. this property added if it wasn\u0027t present\n 2. this property updated otherwise\n use this one only from C#","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobjextensions.html#Format","title":"ImmutableDynamicObjExtensions.Format","content":"ImmutableDynamicObjExtensions.Format \nFormat \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobjextensions.html#Print","title":"ImmutableDynamicObjExtensions.Print","content":"ImmutableDynamicObjExtensions.Print \nPrint \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobjextensions.html#RemoveItem","title":"ImmutableDynamicObjExtensions.RemoveItem","content":"ImmutableDynamicObjExtensions.RemoveItem \nRemoveItem \n Returns an instance:\n 1. the same if there was no requested property\n 2. without the requested property if there was\n use this one only from C#","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobjjsonconverter.html","title":"ImmutableDynamicObjJsonConverter","content":"ImmutableDynamicObjJsonConverter \n \nImmutableDynamicObjJsonConverter.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobjjsonconverter.html#\u0060\u0060.ctor\u0060\u0060","title":"ImmutableDynamicObjJsonConverter.\u0060\u0060.ctor\u0060\u0060","content":"ImmutableDynamicObjJsonConverter.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060 \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/index.html","title":"DynamicObj\n","content":"DynamicObj\nThe primary use case of DynamicObj is the extension of F# classes with dynamic properties.\nThis is useful when you want to add arbitrarily typed properties to a class at runtime.\n\nWhy would you want to do that?\n\nYes, The type system is one of the core strengths of F#, and it is awesome.\nHowever, there are cases where a static domain model is either unfeasible or not flexible enough, especially when interfacing with dynamic languages such as JavaScript or Python.\nDynamicObj is transpilable into JS and Python via Fable, meaning you can use it to create classes that are usable in both .NET and those languages, while making their usage (e.g., the setting of dynamic properties) both safe in .NET and idiomatic in JS/Python.\nGet started\n#r \u0026quot;nuget: Fable.Core\u0026quot; // Needed if working with Fable\n\nopen DynamicObj\nopen Fable.Core // Needed if working with Fable\n\n[\u0026lt;AttachMembers\u0026gt;] // AttachMembers needed if working with Fable\ntype Person(id : int, name : string) =\n \n // Include this in your class\n inherit DynamicObj()\n\n // Mutable static property\n let mutable _name = name\n member this.Name\n with get() = _name\n and set(value) = _name \u0026lt;- value\n\n // Immutable static property\n member this.ID \n with get() = id\n\nlet p = Person(1337,\u0026quot;John\u0026quot;)\n\nAccessing static and dynamic properties\nAny class inheriting from DynamicObj can have static and dynamic properties, and both are accessible via various instance methods.\nAccess Static Properties:\np.Name\n\n\u0022John\u0022\np.GetPropertyValue(\u0026quot;Name\u0026quot;)\n\n\u0022John\u0022\nOverwrite mutable static property\np.SetProperty(\u0026quot;Name\u0026quot;,\u0026quot;Jane\u0026quot;)\np.GetPropertyValue(\u0026quot;Name\u0026quot;)\n\n\u0022Jane\u0022\nYou cannot overwrite mutable static properties\np.SetProperty(\u0026quot;ID\u0026quot;,1234) // throws an excpection\n\np.GetPropertyValue(\u0026quot;ID\u0026quot;)\n\n1337\nSet dynamic properties\np.SetProperty(\u0026quot;Address\u0026quot;,\u0026quot;FunStreet\u0026quot;)\np.GetPropertyValue(\u0026quot;Address\u0026quot;)\n\n\u0022FunStreet\u0022\nSafe and typed access to dynamic properties\nNote that all properties returted by GetPropertyValue are boxed in .NET.\nIf you want to get the value in a typed manner, you can use the TryGetTypedPropertyValue method:\np.TryGetTypedPropertyValue\u0026lt;string\u0026gt;(\u0026quot;Name\u0026quot;)\n\nSome \u0022Jane\u0022\np.TryGetTypedPropertyValue\u0026lt;int\u0026gt;(\u0026quot;Name\u0026quot;)\n\n\u0026lt;null\u0026gt;\np.TryGetTypedPropertyValue\u0026lt;string\u0026gt;(\u0026quot;I Do Not Exist\u0026quot;)\n\n\u0026lt;null\u0026gt;\nAttention: the TryGetTypedPropertyValue method is not transpilable via Fable as it can only provide access to the types known at transpilation.\nHowever, You can use the respective module function to transpile typed dynamic member access.\nThe DynObj module\nThis module provides a lot of API functions that are not not desired as static methods on DynamicObj, as it would be confusing if they ended up on inheriting classes.\nIt also supports pipeline chaining.\np\n|\u0026gt; DynObj.tryGetTypedPropertyValue\u0026lt;int\u0026gt; \u0026quot;ID\u0026quot;\n\nSome 1337\np\n|\u0026gt; DynObj.withProperty \u0026quot;Another\u0026quot; \u0026quot;prop\u0026quot;\n|\u0026gt; DynObj.withProperty \u0026quot;Yes\u0026quot; 42\n|\u0026gt; DynObj.withoutProperty \u0026quot;Address\u0026quot;\n|\u0026gt; DynObj.withOptionalProperty \u0026quot;Maybe\u0026quot; (Some \u0026quot;yes\u0026quot;)\n|\u0026gt; DynObj.withOptionalProperty \u0026quot;Maybe not\u0026quot; None\n|\u0026gt; DynObj.format\n\n\u0022Name: Jane\nID: 1337\n?Maybe: yes\n?Another: prop\n?Yes: 42\u0022\nSerialization\nSerialization to a JSON string that contains both static and dynamic properties is supported out-of-the-box when using Newtonsoft.Json:\n#r \u0026quot;nuget: Newtonsoft.Json\u0026quot;\n\nopen Newtonsoft.Json\n\np\n|\u0026gt; JsonConvert.SerializeObject\n\n\u0022{\u0022Name\u0022:\u0022Jane\u0022,\u0022ID\u0022:1337,\u0022Maybe\u0022:\u0022yes\u0022,\u0022Another\u0022:\u0022prop\u0022,\u0022Yes\u0022:42}\u0022\n","headings":["DynamicObj","Get started","Accessing static and dynamic properties","Access Static Properties:","Overwrite mutable static property","You cannot overwrite mutable static properties","Set dynamic properties","Safe and typed access to dynamic properties","The DynObj module","Serialization"],"type":"content"}] \ No newline at end of file +[{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj.html","title":"DynamicObj","content":"DynObj \nFableJS \nFablePy \nHashCodes \nReflectionUtils \nCopyUtils \nDynamicObj \nPropertyHelper \nOperators \nImmutableDynamicObj \nImmutableDynamicObjExtensions \nImmutableDynamicObjJsonConverter","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html","title":"DynObj","content":"DynObj \n This module contains lots of API functions for DynamicObj. \n\n These functions are not static methods on the DynamicObj type itself because that type is designed to be inherited from, \n and a lot of these functions might not make sense as static methods on inheriting types. \nDynObj.ofDict \nofDict \nDynObj.ofSeq \nofSeq \nDynObj.ofList \nofList \nDynObj.ofArray \nofArray \nDynObj.combine \ncombine \nDynObj.tryGetTypedPropertyValue \ntryGetTypedPropertyValue \nDynObj.setProperty \nsetProperty \nDynObj.withProperty \nwithProperty \nDynObj.setOptionalProperty \nsetOptionalProperty \nDynObj.withOptionalProperty \nwithOptionalProperty \nDynObj.setOptionalPropertyBy \nsetOptionalPropertyBy \nDynObj.withOptionalPropertyBy \nwithOptionalPropertyBy \nDynObj.tryGetPropertyValue \ntryGetPropertyValue \nDynObj.removeProperty \nremoveProperty \nDynObj.withoutProperty \nwithoutProperty \nDynObj.format \nformat \nDynObj.print \nprint \nDynObj.tryDeepCopyObj \ntryDeepCopyObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#ofDict","title":"DynObj.ofDict","content":"DynObj.ofDict \nofDict \n\n Creates a new DynamicObj from a Dictionary containing dynamic properties.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#ofSeq","title":"DynObj.ofSeq","content":"DynObj.ofSeq \nofSeq \n\n Creates a new DynamicObj from a sequence of key value pairs containing dynamic properties.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#ofList","title":"DynObj.ofList","content":"DynObj.ofList \nofList \n\n Creates a new DynamicObj from a list of key value pairs containing dynamic properties.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#ofArray","title":"DynObj.ofArray","content":"DynObj.ofArray \nofArray \n\n Creates a new DynamicObj from an array of key value pairs containing dynamic properties.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#combine","title":"DynObj.combine","content":"DynObj.combine \ncombine \n\n Combines the dynamic properties of the second DynamicObj onto the first. \n\n In case of duplicate property names the members of the second object override those of the first.\n \nThis function mutates the first input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#tryGetTypedPropertyValue","title":"DynObj.tryGetTypedPropertyValue","content":"DynObj.tryGetTypedPropertyValue \ntryGetTypedPropertyValue \n\n Returns Some(\u0027TPropertyValue) when a dynamic (or static) property with the given name and type exists on the input, otherwise None.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#setProperty","title":"DynObj.setProperty","content":"DynObj.setProperty \nsetProperty \n\n Sets the dynamic (or static) property value with the given name on the given DynamicObj, creating a new dynamic property if none exists.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#withProperty","title":"DynObj.withProperty","content":"DynObj.withProperty \nwithProperty \n\n Sets the dynamic (or static) property value with the given name, creating a new dynamic property if none exists on the given DynamicObj and returns it.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#setOptionalProperty","title":"DynObj.setOptionalProperty","content":"DynObj.setOptionalProperty \nsetOptionalProperty \n\n Sets the dynamic (or static) property value with the given name on the given DynamicObj if the value is Some(\u0027TPropertyValue), creating a new dynamic property if none exists.\n If the given propertyValue is None, does nothing to the input DynamicObj.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#withOptionalProperty","title":"DynObj.withOptionalProperty","content":"DynObj.withOptionalProperty \nwithOptionalProperty \n\n Sets the dynamic (or static) property value with the given name on the given DynamicObj if the value is Some(\u0027TPropertyValue), creating a new dynamic property if none exists, and returns it.\n If the given propertyValue is None, does nothing to the input DynamicObj.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#setOptionalPropertyBy","title":"DynObj.setOptionalPropertyBy","content":"DynObj.setOptionalPropertyBy \nsetOptionalPropertyBy \n\n Sets the given dynamic (or static) property with the result of a mapping function applied to the given property value on the given DynamicObj if the value is Some(\u0027TPropertyValue).\n If the given propertyValue is None, does nothing to the input DynamicObj.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#withOptionalPropertyBy","title":"DynObj.withOptionalPropertyBy","content":"DynObj.withOptionalPropertyBy \nwithOptionalPropertyBy \n\n Sets the given dynamic (or static) property with the result of a mapping function applied to the given property value on the given DynamicObj if the value is Some(\u0027TPropertyValue) and returns it.\n If the given propertyValue is None, returns the unchanged DynamicObj.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#tryGetPropertyValue","title":"DynObj.tryGetPropertyValue","content":"DynObj.tryGetPropertyValue \ntryGetPropertyValue \n\n Returns Some(boxed property value) if a dynamic (or static) property with the given name exists on the input, otherwise None.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#removeProperty","title":"DynObj.removeProperty","content":"DynObj.removeProperty \nremoveProperty \n\n Removes any dynamic property with the given name from the input DynamicObj.\n If the property is static and mutable, it will be set to null.\n Static immutable properties cannot be removed.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#withoutProperty","title":"DynObj.withoutProperty","content":"DynObj.withoutProperty \nwithoutProperty \n\n Removes any dynamic property with the given name from the input DynamicObj and returns it.\n If the property is static and mutable, it will be set to null.\n Static immutable properties cannot be removed.\n \nThis function mutates the input DynamicObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#format","title":"DynObj.format","content":"DynObj.format \nformat \n\n Returns a formatted string containing all static and dynamic properties of the given DynamicObj\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#print","title":"DynObj.print","content":"DynObj.print \nprint \n\n Prints a formatted string containing all static and dynamic properties of the given DynamicObj\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynobj.html#tryDeepCopyObj","title":"DynObj.tryDeepCopyObj","content":"DynObj.tryDeepCopyObj \ntryDeepCopyObj \n\n function to deep copy a boxed object (if possible)\n\n The following cases are handled (in this precedence):\n\n - Basic F# types (bool, byte, sbyte, int16, uint16, int, uint, int64, uint64, nativeint, unativeint, float, float32, char, string, unit, decimal)\n\n - ResizeArrays and Dictionaries containing any combination of basic F# types\n\n - Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values\n\n - array\u003CDynamicObj\u003E, list\u003CDynamicObj\u003E, ResizeArray\u003CDynamicObj\u003E: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.\n\n - System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.\n\n - DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively.\n if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance.\n\n Note on Classes that inherit from DynamicObj:\n\n Classes that inherit from DynamicObj will match the \u0060DynamicObj\u0060 typecheck if they do not implement ICloneable.\n The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties.\n It should be possible to \u0027recover\u0027 the original type by checking if the needed properties exist as dynamic properties,\n and then passing them to the class constructor if needed.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html","title":"FableJS","content":"FableJS \n \nFableJS.Dictionaries \nDictionaries \nFableJS.Interfaces \nInterfaces \nFableJS.PropertyDescriptor \nPropertyDescriptor \nFableJS.getOwnPropertyNames \ngetOwnPropertyNames \nFableJS.getPrototype \ngetPrototype \nFableJS.getStaticPropertyNames \ngetStaticPropertyNames \nFableJS.setPropertyValue \nsetPropertyValue \nFableJS.createSetter \ncreateSetter \nFableJS.removeStaticPropertyValue \nremoveStaticPropertyValue \nFableJS.deleteDynamicPropertyValue \ndeleteDynamicPropertyValue \nFableJS.createRemover \ncreateRemover \nFableJS.getPropertyValue \ngetPropertyValue \nFableJS.createGetter \ncreateGetter \nFableJS.tryGetPropertyDescriptor \ntryGetPropertyDescriptor \nFableJS.tryGetStaticPropertyDescriptor \ntryGetStaticPropertyDescriptor \nFableJS.tryStaticPropertyHelperFromDescriptor \ntryStaticPropertyHelperFromDescriptor \nFableJS.tryGetStaticPropertyHelper \ntryGetStaticPropertyHelper \nFableJS.getStaticPropertyHelpers \ngetStaticPropertyHelpers \nFableJS.tryGetDynamicPropertyDescriptor \ntryGetDynamicPropertyDescriptor \nFableJS.transpiledPropertyRegex \ntranspiledPropertyRegex \nFableJS.isTranspiledPropertyHelper \nisTranspiledPropertyHelper \nFableJS.tryDynamicPropertyHelperFromDescriptor \ntryDynamicPropertyHelperFromDescriptor \nFableJS.tryGetDynamicPropertyHelper \ntryGetDynamicPropertyHelper \nFableJS.getDynamicPropertyHelpers \ngetDynamicPropertyHelpers \nFableJS.getPropertyHelpers \ngetPropertyHelpers \nFableJS.getPropertyNames \ngetPropertyNames","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getOwnPropertyNames","title":"FableJS.getOwnPropertyNames","content":"FableJS.getOwnPropertyNames \ngetOwnPropertyNames \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getPrototype","title":"FableJS.getPrototype","content":"FableJS.getPrototype \ngetPrototype \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getStaticPropertyNames","title":"FableJS.getStaticPropertyNames","content":"FableJS.getStaticPropertyNames \ngetStaticPropertyNames \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#setPropertyValue","title":"FableJS.setPropertyValue","content":"FableJS.setPropertyValue \nsetPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#createSetter","title":"FableJS.createSetter","content":"FableJS.createSetter \ncreateSetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#removeStaticPropertyValue","title":"FableJS.removeStaticPropertyValue","content":"FableJS.removeStaticPropertyValue \nremoveStaticPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#deleteDynamicPropertyValue","title":"FableJS.deleteDynamicPropertyValue","content":"FableJS.deleteDynamicPropertyValue \ndeleteDynamicPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#createRemover","title":"FableJS.createRemover","content":"FableJS.createRemover \ncreateRemover \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getPropertyValue","title":"FableJS.getPropertyValue","content":"FableJS.getPropertyValue \ngetPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#createGetter","title":"FableJS.createGetter","content":"FableJS.createGetter \ncreateGetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#tryGetPropertyDescriptor","title":"FableJS.tryGetPropertyDescriptor","content":"FableJS.tryGetPropertyDescriptor \ntryGetPropertyDescriptor \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#tryGetStaticPropertyDescriptor","title":"FableJS.tryGetStaticPropertyDescriptor","content":"FableJS.tryGetStaticPropertyDescriptor \ntryGetStaticPropertyDescriptor \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#tryStaticPropertyHelperFromDescriptor","title":"FableJS.tryStaticPropertyHelperFromDescriptor","content":"FableJS.tryStaticPropertyHelperFromDescriptor \ntryStaticPropertyHelperFromDescriptor \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#tryGetStaticPropertyHelper","title":"FableJS.tryGetStaticPropertyHelper","content":"FableJS.tryGetStaticPropertyHelper \ntryGetStaticPropertyHelper \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getStaticPropertyHelpers","title":"FableJS.getStaticPropertyHelpers","content":"FableJS.getStaticPropertyHelpers \ngetStaticPropertyHelpers \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#tryGetDynamicPropertyDescriptor","title":"FableJS.tryGetDynamicPropertyDescriptor","content":"FableJS.tryGetDynamicPropertyDescriptor \ntryGetDynamicPropertyDescriptor \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#transpiledPropertyRegex","title":"FableJS.transpiledPropertyRegex","content":"FableJS.transpiledPropertyRegex \ntranspiledPropertyRegex \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#isTranspiledPropertyHelper","title":"FableJS.isTranspiledPropertyHelper","content":"FableJS.isTranspiledPropertyHelper \nisTranspiledPropertyHelper \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#tryDynamicPropertyHelperFromDescriptor","title":"FableJS.tryDynamicPropertyHelperFromDescriptor","content":"FableJS.tryDynamicPropertyHelperFromDescriptor \ntryDynamicPropertyHelperFromDescriptor \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#tryGetDynamicPropertyHelper","title":"FableJS.tryGetDynamicPropertyHelper","content":"FableJS.tryGetDynamicPropertyHelper \ntryGetDynamicPropertyHelper \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getDynamicPropertyHelpers","title":"FableJS.getDynamicPropertyHelpers","content":"FableJS.getDynamicPropertyHelpers \ngetDynamicPropertyHelpers \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getPropertyHelpers","title":"FableJS.getPropertyHelpers","content":"FableJS.getPropertyHelpers \ngetPropertyHelpers \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs.html#getPropertyNames","title":"FableJS.getPropertyNames","content":"FableJS.getPropertyNames \ngetPropertyNames \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-dictionaries.html","title":"Dictionaries","content":"Dictionaries \n \nDictionaries.isMap \nisMap \nDictionaries.isDict \nisDict","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-dictionaries.html#isMap","title":"Dictionaries.isMap","content":"Dictionaries.isMap \nisMap \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-dictionaries.html#isDict","title":"Dictionaries.isDict","content":"Dictionaries.isDict \nisDict \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-interfaces.html","title":"Interfaces","content":"Interfaces \n \nInterfaces.implementsICloneable \nimplementsICloneable \nInterfaces.cloneICloneable \ncloneICloneable","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-interfaces.html#implementsICloneable","title":"Interfaces.implementsICloneable","content":"Interfaces.implementsICloneable \nimplementsICloneable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-interfaces.html#cloneICloneable","title":"Interfaces.cloneICloneable","content":"Interfaces.cloneICloneable \ncloneICloneable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html","title":"PropertyDescriptor","content":"PropertyDescriptor \n \nPropertyDescriptor.tryGetPropertyValue \ntryGetPropertyValue \nPropertyDescriptor.tryGetIsWritable \ntryGetIsWritable \nPropertyDescriptor.containsGetter \ncontainsGetter \nPropertyDescriptor.containsSetter \ncontainsSetter \nPropertyDescriptor.isWritable \nisWritable \nPropertyDescriptor.valueIsFunction \nvalueIsFunction \nPropertyDescriptor.isFunction \nisFunction","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html#tryGetPropertyValue","title":"PropertyDescriptor.tryGetPropertyValue","content":"PropertyDescriptor.tryGetPropertyValue \ntryGetPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html#tryGetIsWritable","title":"PropertyDescriptor.tryGetIsWritable","content":"PropertyDescriptor.tryGetIsWritable \ntryGetIsWritable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html#containsGetter","title":"PropertyDescriptor.containsGetter","content":"PropertyDescriptor.containsGetter \ncontainsGetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html#containsSetter","title":"PropertyDescriptor.containsSetter","content":"PropertyDescriptor.containsSetter \ncontainsSetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html#isWritable","title":"PropertyDescriptor.isWritable","content":"PropertyDescriptor.isWritable \nisWritable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html#valueIsFunction","title":"PropertyDescriptor.valueIsFunction","content":"PropertyDescriptor.valueIsFunction \nvalueIsFunction \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablejs-propertydescriptor.html#isFunction","title":"PropertyDescriptor.isFunction","content":"PropertyDescriptor.isFunction \nisFunction \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html","title":"FablePy","content":"FablePy \n \nFablePy.Dictionaries \nDictionaries \nFablePy.Dictionary \nDictionary \nFablePy.Interfaces \nInterfaces \nFablePy.PropertyObject \nPropertyObject \nFablePy.PropertyObject \nPropertyObject \nFablePy.getPropertyValue \ngetPropertyValue \nFablePy.createGetter \ncreateGetter \nFablePy.setPropertyValue \nsetPropertyValue \nFablePy.createSetter \ncreateSetter \nFablePy.getOwnMemberObjects \ngetOwnMemberObjects \nFablePy.getClass \ngetClass \nFablePy.getStaticPropertyObjects \ngetStaticPropertyObjects \nFablePy.removeStaticPropertyValue \nremoveStaticPropertyValue \nFablePy.deleteDynamicPropertyValue \ndeleteDynamicPropertyValue \nFablePy.createRemover \ncreateRemover \nFablePy.getMemberObject \ngetMemberObject \nFablePy.tryGetPropertyObject \ntryGetPropertyObject \nFablePy.tryGetDynamicPropertyHelper \ntryGetDynamicPropertyHelper \nFablePy.tryGetStaticPropertyHelper \ntryGetStaticPropertyHelper \nFablePy.transpiledPropertyRegex \ntranspiledPropertyRegex \nFablePy.isTranspiledPropertyHelper \nisTranspiledPropertyHelper \nFablePy.getDynamicPropertyHelpers \ngetDynamicPropertyHelpers \nFablePy.getStaticPropertyHelpers \ngetStaticPropertyHelpers \nFablePy.getPropertyHelpers \ngetPropertyHelpers \nFablePy.getPropertyNames \ngetPropertyNames","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getPropertyValue","title":"FablePy.getPropertyValue","content":"FablePy.getPropertyValue \ngetPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#createGetter","title":"FablePy.createGetter","content":"FablePy.createGetter \ncreateGetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#setPropertyValue","title":"FablePy.setPropertyValue","content":"FablePy.setPropertyValue \nsetPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#createSetter","title":"FablePy.createSetter","content":"FablePy.createSetter \ncreateSetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getOwnMemberObjects","title":"FablePy.getOwnMemberObjects","content":"FablePy.getOwnMemberObjects \ngetOwnMemberObjects \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getClass","title":"FablePy.getClass","content":"FablePy.getClass \ngetClass \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getStaticPropertyObjects","title":"FablePy.getStaticPropertyObjects","content":"FablePy.getStaticPropertyObjects \ngetStaticPropertyObjects \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#removeStaticPropertyValue","title":"FablePy.removeStaticPropertyValue","content":"FablePy.removeStaticPropertyValue \nremoveStaticPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#deleteDynamicPropertyValue","title":"FablePy.deleteDynamicPropertyValue","content":"FablePy.deleteDynamicPropertyValue \ndeleteDynamicPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#createRemover","title":"FablePy.createRemover","content":"FablePy.createRemover \ncreateRemover \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getMemberObject","title":"FablePy.getMemberObject","content":"FablePy.getMemberObject \ngetMemberObject \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#tryGetPropertyObject","title":"FablePy.tryGetPropertyObject","content":"FablePy.tryGetPropertyObject \ntryGetPropertyObject \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#tryGetDynamicPropertyHelper","title":"FablePy.tryGetDynamicPropertyHelper","content":"FablePy.tryGetDynamicPropertyHelper \ntryGetDynamicPropertyHelper \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#tryGetStaticPropertyHelper","title":"FablePy.tryGetStaticPropertyHelper","content":"FablePy.tryGetStaticPropertyHelper \ntryGetStaticPropertyHelper \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#transpiledPropertyRegex","title":"FablePy.transpiledPropertyRegex","content":"FablePy.transpiledPropertyRegex \ntranspiledPropertyRegex \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#isTranspiledPropertyHelper","title":"FablePy.isTranspiledPropertyHelper","content":"FablePy.isTranspiledPropertyHelper \nisTranspiledPropertyHelper \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getDynamicPropertyHelpers","title":"FablePy.getDynamicPropertyHelpers","content":"FablePy.getDynamicPropertyHelpers \ngetDynamicPropertyHelpers \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getStaticPropertyHelpers","title":"FablePy.getStaticPropertyHelpers","content":"FablePy.getStaticPropertyHelpers \ngetStaticPropertyHelpers \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getPropertyHelpers","title":"FablePy.getPropertyHelpers","content":"FablePy.getPropertyHelpers \ngetPropertyHelpers \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy.html#getPropertyNames","title":"FablePy.getPropertyNames","content":"FablePy.getPropertyNames \ngetPropertyNames \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-dictionaries.html","title":"Dictionaries","content":"Dictionaries \n \nDictionaries.isDict \nisDict","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-dictionaries.html#isDict","title":"Dictionaries.isDict","content":"Dictionaries.isDict \nisDict \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-dictionary.html","title":"Dictionary","content":"Dictionary \n \nDictionary.ofSeq \nofSeq \nDictionary.choose \nchoose","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-dictionary.html#ofSeq","title":"Dictionary.ofSeq","content":"Dictionary.ofSeq \nofSeq \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-dictionary.html#choose","title":"Dictionary.choose","content":"Dictionary.choose \nchoose \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-interfaces.html","title":"Interfaces","content":"Interfaces \n \nInterfaces.implementsICloneable \nimplementsICloneable \nInterfaces.cloneICloneable \ncloneICloneable","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-interfaces.html#implementsICloneable","title":"Interfaces.implementsICloneable","content":"Interfaces.implementsICloneable \nimplementsICloneable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-interfaces.html#cloneICloneable","title":"Interfaces.cloneICloneable","content":"Interfaces.cloneICloneable \ncloneICloneable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html","title":"PropertyObject","content":"PropertyObject \n \nPropertyObject.tryGetGetter \ntryGetGetter \nPropertyObject.tryGetSetter \ntryGetSetter \nPropertyObject.getGetter \ngetGetter \nPropertyObject.getSetter \ngetSetter \nPropertyObject.containsGetter \ncontainsGetter \nPropertyObject.containsSetter \ncontainsSetter \nPropertyObject.isWritable \nisWritable \nPropertyObject.isProperty \nisProperty \nPropertyObject.tryProperty \ntryProperty","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#tryGetGetter","title":"PropertyObject.tryGetGetter","content":"PropertyObject.tryGetGetter \ntryGetGetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#tryGetSetter","title":"PropertyObject.tryGetSetter","content":"PropertyObject.tryGetSetter \ntryGetSetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#getGetter","title":"PropertyObject.getGetter","content":"PropertyObject.getGetter \ngetGetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#getSetter","title":"PropertyObject.getSetter","content":"PropertyObject.getSetter \ngetSetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#containsGetter","title":"PropertyObject.containsGetter","content":"PropertyObject.containsGetter \ncontainsGetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#containsSetter","title":"PropertyObject.containsSetter","content":"PropertyObject.containsSetter \ncontainsSetter \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#isWritable","title":"PropertyObject.isWritable","content":"PropertyObject.isWritable \nisWritable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#isProperty","title":"PropertyObject.isProperty","content":"PropertyObject.isProperty \nisProperty \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobjectmodule.html#tryProperty","title":"PropertyObject.tryProperty","content":"PropertyObject.tryProperty \ntryProperty \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobject.html","title":"PropertyObject","content":"PropertyObject \n \nPropertyObject.fget \nfget \nPropertyObject.fset \nfset","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobject.html#fget","title":"PropertyObject.fget","content":"PropertyObject.fget \nfget \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-fablepy-propertyobject.html#fset","title":"PropertyObject.fset","content":"PropertyObject.fset \nfset \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html","title":"HashCodes","content":"HashCodes \n \nHashCodes.mergeHashes \nmergeHashes \nHashCodes.hashDateTime \nhashDateTime \nHashCodes.hash \nhash \nHashCodes.boxHashOption \nboxHashOption \nHashCodes.boxHashArray \nboxHashArray \nHashCodes.boxHashSeq \nboxHashSeq \nHashCodes.boxHashKeyValSeq \nboxHashKeyValSeq","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html#mergeHashes","title":"HashCodes.mergeHashes","content":"HashCodes.mergeHashes \nmergeHashes \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html#hashDateTime","title":"HashCodes.hashDateTime","content":"HashCodes.hashDateTime \nhashDateTime \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html#hash","title":"HashCodes.hash","content":"HashCodes.hash \nhash \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html#boxHashOption","title":"HashCodes.boxHashOption","content":"HashCodes.boxHashOption \nboxHashOption \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html#boxHashArray","title":"HashCodes.boxHashArray","content":"HashCodes.boxHashArray \nboxHashArray \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html#boxHashSeq","title":"HashCodes.boxHashSeq","content":"HashCodes.boxHashSeq \nboxHashSeq \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-hashcodes.html#boxHashKeyValSeq","title":"HashCodes.boxHashKeyValSeq","content":"HashCodes.boxHashKeyValSeq \nboxHashKeyValSeq \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-reflectionutils.html","title":"ReflectionUtils","content":"ReflectionUtils \n \nReflectionUtils.getStaticProperties \ngetStaticProperties \nReflectionUtils.tryGetStaticPropertyInfo \ntryGetStaticPropertyInfo \nReflectionUtils.trySetPropertyValue \ntrySetPropertyValue \nReflectionUtils.tryGetPropertyValue \ntryGetPropertyValue \nReflectionUtils.tryGetPropertyValueAs \ntryGetPropertyValueAs \nReflectionUtils.removeProperty \nremoveProperty","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-reflectionutils.html#getStaticProperties","title":"ReflectionUtils.getStaticProperties","content":"ReflectionUtils.getStaticProperties \ngetStaticProperties \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-reflectionutils.html#tryGetStaticPropertyInfo","title":"ReflectionUtils.tryGetStaticPropertyInfo","content":"ReflectionUtils.tryGetStaticPropertyInfo \ntryGetStaticPropertyInfo \n Try to get the PropertyInfo by name using reflection","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-reflectionutils.html#trySetPropertyValue","title":"ReflectionUtils.trySetPropertyValue","content":"ReflectionUtils.trySetPropertyValue \ntrySetPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-reflectionutils.html#tryGetPropertyValue","title":"ReflectionUtils.tryGetPropertyValue","content":"ReflectionUtils.tryGetPropertyValue \ntryGetPropertyValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-reflectionutils.html#tryGetPropertyValueAs","title":"ReflectionUtils.tryGetPropertyValueAs","content":"ReflectionUtils.tryGetPropertyValueAs \ntryGetPropertyValueAs \n Gets property value as \u0027a option using reflection. Cast to \u0027a","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-reflectionutils.html#removeProperty","title":"ReflectionUtils.removeProperty","content":"ReflectionUtils.removeProperty \nremoveProperty \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-copyutils.html","title":"CopyUtils","content":"CopyUtils \n \nCopyUtils.tryDeepCopyObj \ntryDeepCopyObj","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-copyutils.html#tryDeepCopyObj","title":"CopyUtils.tryDeepCopyObj","content":"CopyUtils.tryDeepCopyObj \ntryDeepCopyObj \n\n function to deep copy a boxed object (if possible)\n The following cases are handled (in this precedence):\n\n - Basic F# types (bool, byte, sbyte, int16, uint16, int, uint, int64, uint64, nativeint, unativeint, float, float32, char, string, unit, decimal)\n\n - ResizeArrays and Dictionaries containing any combination of basic F# types\n\n - Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values\n\n - array\u003CDynamicObj\u003E, list\u003CDynamicObj\u003E, ResizeArray\u003CDynamicObj\u003E: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.\n\n - System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.\n\n - DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively.\n if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance.\n\n Note on Classes that inherit from DynamicObj:\n\n Classes that inherit from DynamicObj will match the \u0060DynamicObj\u0060 typecheck if they do not implement ICloneable.\n The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties.\n It should be possible to \u0027recover\u0027 the original type by checking if the needed properties exist as dynamic properties,\n and then passing them to the class constructor if needed.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html","title":"DynamicObj","content":"DynamicObj \n \nDynamicObj.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060 \nDynamicObj.DeepCopyProperties \nDeepCopyProperties \nDynamicObj.DeepCopyPropertiesTo \nDeepCopyPropertiesTo \nDynamicObj.GetProperties \nGetProperties \nDynamicObj.GetPropertyHelpers \nGetPropertyHelpers \nDynamicObj.GetPropertyNames \nGetPropertyNames \nDynamicObj.GetPropertyValue \nGetPropertyValue \nDynamicObj.RemoveProperty \nRemoveProperty \nDynamicObj.SetProperty \nSetProperty \nDynamicObj.ShallowCopyDynamicProperties \nShallowCopyDynamicProperties \nDynamicObj.ShallowCopyDynamicPropertiesTo \nShallowCopyDynamicPropertiesTo \nDynamicObj.TryGetDynamicPropertyHelper \nTryGetDynamicPropertyHelper \nDynamicObj.TryGetPropertyHelper \nTryGetPropertyHelper \nDynamicObj.TryGetPropertyValue \nTryGetPropertyValue \nDynamicObj.TryGetStaticPropertyHelper \nTryGetStaticPropertyHelper \nDynamicObj.TryGetTypedPropertyValue \nTryGetTypedPropertyValue \nDynamicObj.Properties \nProperties \nDynamicObj.ofDict \nofDict \nDynamicObj.(?) \n(?) \nDynamicObj.(?\u003C-) \n(?\u003C-)","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#\u0060\u0060.ctor\u0060\u0060","title":"DynamicObj.\u0060\u0060.ctor\u0060\u0060","content":"DynamicObj.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060 \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#DeepCopyProperties","title":"DynamicObj.DeepCopyProperties","content":"DynamicObj.DeepCopyProperties \nDeepCopyProperties \n\n Recursively deep copy a \u0060DynamicObj\u0060 instance (or derived class) with **all** (static and dynamic) properties. Reinstantiation - and therefore prevention of reference equality - is possible for \u0060DynamicObj\u0060, \u0060array|list|ResizeArray\u003CDynamicObj\u003E\u0060, and classes implementing \u0060System.Icloneable\u0060\n \n On the deep copy, as many properties as possible are re-instantiated as new objects, meaning the \n copy has as little reference equal properties as possible.\n \n The nature of DynamicObj however means that it is impossible to reliably deep copy all properties, as\n their type is not known on runtime and the contructors of the types are not known.\n\n The following cases are handled (in this precedence):\n\n - Basic F# types (bool, byte, sbyte, int16, uint16, int, uint, int64, uint64, nativeint, unativeint, float, float32, char, string, unit, decimal)\n\n - ResizeArrays and Dictionaries containing any combination of basic F# types\n\n - Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values\n\n - array\u003CDynamicObj\u003E, list\u003CDynamicObj\u003E, ResizeArray\u003CDynamicObj\u003E: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.\n\n - System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.\n\n - DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively.\n if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance.\n\n Note on Classes that inherit from DynamicObj:\n\n Classes that inherit from DynamicObj will match the \u0060DynamicObj\u0060 typecheck if they do not implement ICloneable.\n The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties.\n It should be possible to \u0027recover\u0027 the original type by checking if the needed properties exist as dynamic properties,\n and then passing them to the class constructor if needed.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#DeepCopyPropertiesTo","title":"DynamicObj.DeepCopyPropertiesTo","content":"DynamicObj.DeepCopyPropertiesTo \nDeepCopyPropertiesTo \n\n Recursively deep copies **all** (static and dynamic) properties to a **target** \u0060DynamicObj\u0060 instance (or derived class). Reinstantiation - and therefore prevention of reference equality - is possible for \u0060DynamicObj\u0060, \u0060array|list|ResizeArray\u003CDynamicObj\u003E\u0060, and classes implementing \u0060System.Icloneable\u0060\n \n As many properties as possible are re-instantiated as new objects, meaning the \n copy has as little reference equal properties as possible.\n \n The nature of DynamicObj however means that it is impossible to reliably deep copy all properties, as\n their type is not known on runtime and the contructors of the types are not known.\n\n The following cases are handled (in this precedence):\n\n - Basic F# types (bool, byte, sbyte, int16, uint16, int, uint, int64, uint64, nativeint, unativeint, float, float32, char, string, unit, decimal)\n\n - ResizeArrays and Dictionaries containing any combination of basic F# types\n\n - Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values\n\n - array\u003CDynamicObj\u003E, list\u003CDynamicObj\u003E, ResizeArray\u003CDynamicObj\u003E: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.\n\n - System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.\n\n - DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively.\n if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance.\n\n Note on Classes that inherit from DynamicObj:\n\n Classes that inherit from DynamicObj will match the \u0060DynamicObj\u0060 typecheck if they do not implement ICloneable.\n The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties.\n It should be possible to \u0027recover\u0027 the original type by checking if the needed properties exist as dynamic properties,\n and then passing them to the class constructor if needed.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#GetProperties","title":"DynamicObj.GetProperties","content":"DynamicObj.GetProperties \nGetProperties \n\n Returns a sequence of all dynamic properties as a key value pair of the property names and the boxed property values.\n\n When includeInstanceProperties is set to true, instance properties (= \u0027static\u0027 properties on the class) are included in the result.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#GetPropertyHelpers","title":"DynamicObj.GetPropertyHelpers","content":"DynamicObj.GetPropertyHelpers \nGetPropertyHelpers \n\n Returns PropertyHelpers for all dynamic properties of the DynamicObj.\n\n When includeInstanceProperties is set to true, instance properties (= \u0027static\u0027 properties on the class) are included in the result.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#GetPropertyNames","title":"DynamicObj.GetPropertyNames","content":"DynamicObj.GetPropertyNames \nGetPropertyNames \n\n Returns a sequence of all dynamic property names.\n\n When includeInstanceProperties is set to true, instance properties (= \u0027static\u0027 properties on the class) are included in the result.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#GetPropertyValue","title":"DynamicObj.GetPropertyValue","content":"DynamicObj.GetPropertyValue \nGetPropertyValue \n\n Returns the boxed property value of the dynamic (or static) property with the given name.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#RemoveProperty","title":"DynamicObj.RemoveProperty","content":"DynamicObj.RemoveProperty \nRemoveProperty \n\n Removes any dynamic property with the given name from the input DynamicObj.\n If the property is static and mutable, it will be set to null.\n Static immutable properties cannot be removed.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#SetProperty","title":"DynamicObj.SetProperty","content":"DynamicObj.SetProperty \nSetProperty \n\n Sets the dynamic (or static) property value with the given name, creating a new dynamic property if none exists.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#ShallowCopyDynamicProperties","title":"DynamicObj.ShallowCopyDynamicProperties","content":"DynamicObj.ShallowCopyDynamicProperties \nShallowCopyDynamicProperties \n Copies all dynamic properties to a new \u0060DynamicObj\u0060 instance without trying to prevent reference equality.\n\n Note that this function does not attempt to do any deep copying. \n The dynamic properties of the source will be copied as references to the target. \n If any of those properties are mutable or themselves DynamicObj instances, changes to the properties on the source will be reflected in the target.","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#ShallowCopyDynamicPropertiesTo","title":"DynamicObj.ShallowCopyDynamicPropertiesTo","content":"DynamicObj.ShallowCopyDynamicPropertiesTo \nShallowCopyDynamicPropertiesTo \n\n Copies all dynamic properties to a target \u0060DynamicObj\u0060 instance without trying to prevent reference equality.\n\n Note that this function does not attempt to do any deep copying. \n The dynamic properties of the source will be copied as references to the target. \n If any of those properties are mutable or themselves DynamicObj instances, changes to the properties on the source will be reflected in the target.\n\n If overWrite is set to true, existing properties on the target object will be overwritten.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#TryGetDynamicPropertyHelper","title":"DynamicObj.TryGetDynamicPropertyHelper","content":"DynamicObj.TryGetDynamicPropertyHelper \nTryGetDynamicPropertyHelper \n\n Returns Some(PropertyHelper) if a dynamic property with the given name exists, otherwise None.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#TryGetPropertyHelper","title":"DynamicObj.TryGetPropertyHelper","content":"DynamicObj.TryGetPropertyHelper \nTryGetPropertyHelper \n\n Returns Some(PropertyHelper) if a property (static or dynamic) with the given name exists, otherwise None.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#TryGetPropertyValue","title":"DynamicObj.TryGetPropertyValue","content":"DynamicObj.TryGetPropertyValue \nTryGetPropertyValue \n\n Returns Some(boxed property value) if a dynamic (or static) property with the given name exists, otherwise None.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#TryGetStaticPropertyHelper","title":"DynamicObj.TryGetStaticPropertyHelper","content":"DynamicObj.TryGetStaticPropertyHelper \nTryGetStaticPropertyHelper \n\n Returns Some(PropertyHelper) if a static property with the given name exists, otherwise None.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#TryGetTypedPropertyValue","title":"DynamicObj.TryGetTypedPropertyValue","content":"DynamicObj.TryGetTypedPropertyValue \nTryGetTypedPropertyValue \n\n Returns Some(\u0027TPropertyValue) when a dynamic (or static) property with the given name and type exists, otherwise None.\n\n This method is not Fable-compatible and can therefore not be used in code that will be transpiled.\n \nThis method is not Fable-compatible and can therefore not be used in code that will be transpiled.","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#Properties","title":"DynamicObj.Properties","content":"DynamicObj.Properties \nProperties \n A dictionary of dynamic boxed properties","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#ofDict","title":"DynamicObj.ofDict","content":"DynamicObj.ofDict \nofDict \n\n Creates a new DynamicObj from a Dictionary containing dynamic properties.\n ","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#(?)","title":"DynamicObj.(?)","content":"DynamicObj.(?) \n(?) \n\n Operator to access a property by name\n\n This method is not Fable-compatible and can therefore not be used in code that will be transpiled.\n \nThis method is not Fable-compatible and can therefore not be used in code that will be transpiled.","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-dynamicobj.html#(?\u003C-)","title":"DynamicObj.(?\u003C-)","content":"DynamicObj.(?\u003C-) \n(?\u003C-) \n\n Operator to set a property value\n\n This method is not Fable-compatible and can therefore not be used in code that will be transpiled.\n \nThis method is not Fable-compatible and can therefore not be used in code that will be transpiled.","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html","title":"PropertyHelper","content":"PropertyHelper \n \nPropertyHelper.fromPropertyInfo \nfromPropertyInfo \nPropertyHelper.Name \nName \nPropertyHelper.IsStatic \nIsStatic \nPropertyHelper.IsDynamic \nIsDynamic \nPropertyHelper.IsMutable \nIsMutable \nPropertyHelper.IsImmutable \nIsImmutable \nPropertyHelper.GetValue \nGetValue \nPropertyHelper.SetValue \nSetValue \nPropertyHelper.RemoveValue \nRemoveValue","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#fromPropertyInfo","title":"PropertyHelper.fromPropertyInfo","content":"PropertyHelper.fromPropertyInfo \nfromPropertyInfo \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#Name","title":"PropertyHelper.Name","content":"PropertyHelper.Name \nName \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#IsStatic","title":"PropertyHelper.IsStatic","content":"PropertyHelper.IsStatic \nIsStatic \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#IsDynamic","title":"PropertyHelper.IsDynamic","content":"PropertyHelper.IsDynamic \nIsDynamic \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#IsMutable","title":"PropertyHelper.IsMutable","content":"PropertyHelper.IsMutable \nIsMutable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#IsImmutable","title":"PropertyHelper.IsImmutable","content":"PropertyHelper.IsImmutable \nIsImmutable \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#GetValue","title":"PropertyHelper.GetValue","content":"PropertyHelper.GetValue \nGetValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#SetValue","title":"PropertyHelper.SetValue","content":"PropertyHelper.SetValue \nSetValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-propertyhelper.html#RemoveValue","title":"PropertyHelper.RemoveValue","content":"PropertyHelper.RemoveValue \nRemoveValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-operators.html","title":"Operators","content":"Operators \n \nOperators.(\u002B\u002B) \n(\u002B\u002B) \nOperators.(--) \n(--) \nOperators.(\u002B\u002B?) \n(\u002B\u002B?) \nOperators.(\u002B\u002B??) \n(\u002B\u002B??)","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-operators.html#(\u002B\u002B)","title":"Operators.(\u002B\u002B)","content":"Operators.(\u002B\u002B) \n(\u002B\u002B) \n Returns an instance with:\n 1. this property added if it wasn\u0027t present\n 2. this property updated otherwise","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-operators.html#(--)","title":"Operators.(--)","content":"Operators.(--) \n(--) \n Returns an instance:\n 1. the same if there was no requested property\n 2. without the requested property if there was","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-operators.html#(\u002B\u002B?)","title":"Operators.(\u002B\u002B?)","content":"Operators.(\u002B\u002B?) \n(\u002B\u002B?) \n Acts as (\u002B\u002B) if the value is Some,\n returns the same object otherwise","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-operators.html#(\u002B\u002B??)","title":"Operators.(\u002B\u002B??)","content":"Operators.(\u002B\u002B??) \n(\u002B\u002B??) \n Acts as (\u002B\u002B?) but maps the valid value \n through the last argument","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html","title":"ImmutableDynamicObj","content":"ImmutableDynamicObj \n Represents an DynamicObj\u0027s counterpart\n with immutability enabled only. \nImmutableDynamicObj.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060 \nImmutableDynamicObj.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060 \nImmutableDynamicObj.TryGetTypedValue \nTryGetTypedValue \nImmutableDynamicObj.TryGetValue \nTryGetValue \nImmutableDynamicObj.Item \nItem \nImmutableDynamicObj.add \nadd \nImmutableDynamicObj.addOpt \naddOpt \nImmutableDynamicObj.addOptBy \naddOptBy \nImmutableDynamicObj.combineWith \ncombineWith \nImmutableDynamicObj.format \nformat \nImmutableDynamicObj.print \nprint \nImmutableDynamicObj.remove \nremove \nImmutableDynamicObj.empty \nempty","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#\u0060\u0060.ctor\u0060\u0060","title":"ImmutableDynamicObj.\u0060\u0060.ctor\u0060\u0060","content":"ImmutableDynamicObj.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060 \n Empty instance","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#\u0060\u0060.ctor\u0060\u0060","title":"ImmutableDynamicObj.\u0060\u0060.ctor\u0060\u0060","content":"ImmutableDynamicObj.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060 \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#TryGetTypedValue","title":"ImmutableDynamicObj.TryGetTypedValue","content":"ImmutableDynamicObj.TryGetTypedValue \nTryGetTypedValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#TryGetValue","title":"ImmutableDynamicObj.TryGetValue","content":"ImmutableDynamicObj.TryGetValue \nTryGetValue \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#Item","title":"ImmutableDynamicObj.Item","content":"ImmutableDynamicObj.Item \nItem \n Indexes ; if no key found, throws","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#add","title":"ImmutableDynamicObj.add","content":"ImmutableDynamicObj.add \nadd \n Returns an instance with:\n 1. this property added if it wasn\u0027t present\n 2. this property updated otherwise","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#addOpt","title":"ImmutableDynamicObj.addOpt","content":"ImmutableDynamicObj.addOpt \naddOpt \n Acts as add if the value is Some,\n returns the same object otherwise","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#addOptBy","title":"ImmutableDynamicObj.addOptBy","content":"ImmutableDynamicObj.addOptBy \naddOptBy \n Acts as addOpt but maps the valid value \n through the last argument","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#combineWith","title":"ImmutableDynamicObj.combineWith","content":"ImmutableDynamicObj.combineWith \ncombineWith \nMerges the second ImmutableDynamicObj into the first one (that is, keeps the first one\u0027s type). \nWarning: In case of duplicate property names the members of the second object override those of the first.","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#format","title":"ImmutableDynamicObj.format","content":"ImmutableDynamicObj.format \nformat \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#print","title":"ImmutableDynamicObj.print","content":"ImmutableDynamicObj.print \nprint \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#remove","title":"ImmutableDynamicObj.remove","content":"ImmutableDynamicObj.remove \nremove \n Returns an instance:\n 1. the same if there was no requested property\n 2. without the requested property if there was","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobj.html#empty","title":"ImmutableDynamicObj.empty","content":"ImmutableDynamicObj.empty \nempty \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobjextensions.html","title":"ImmutableDynamicObjExtensions","content":"ImmutableDynamicObjExtensions \n \nImmutableDynamicObjExtensions.AddItem \nAddItem \nImmutableDynamicObjExtensions.Format \nFormat \nImmutableDynamicObjExtensions.Print \nPrint \nImmutableDynamicObjExtensions.RemoveItem \nRemoveItem","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobjextensions.html#AddItem","title":"ImmutableDynamicObjExtensions.AddItem","content":"ImmutableDynamicObjExtensions.AddItem \nAddItem \n Returns an instance with:\n 1. this property added if it wasn\u0027t present\n 2. this property updated otherwise\n use this one only from C#","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobjextensions.html#Format","title":"ImmutableDynamicObjExtensions.Format","content":"ImmutableDynamicObjExtensions.Format \nFormat \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobjextensions.html#Print","title":"ImmutableDynamicObjExtensions.Print","content":"ImmutableDynamicObjExtensions.Print \nPrint \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobjextensions.html#RemoveItem","title":"ImmutableDynamicObjExtensions.RemoveItem","content":"ImmutableDynamicObjExtensions.RemoveItem \nRemoveItem \n Returns an instance:\n 1. the same if there was no requested property\n 2. without the requested property if there was\n use this one only from C#","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobjjsonconverter.html","title":"ImmutableDynamicObjJsonConverter","content":"ImmutableDynamicObjJsonConverter \n \nImmutableDynamicObjJsonConverter.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/reference/dynamicobj-immutabledynamicobjjsonconverter.html#\u0060\u0060.ctor\u0060\u0060","title":"ImmutableDynamicObjJsonConverter.\u0060\u0060.ctor\u0060\u0060","content":"ImmutableDynamicObjJsonConverter.\u0060\u0060.ctor\u0060\u0060 \n\u0060\u0060.ctor\u0060\u0060 \n","headings":[],"type":"apiDocs"},{"uri":"https://csbiology.github.io/DynamicObj/index.html","title":"DynamicObj\n","content":"DynamicObj\nThe primary use case of DynamicObj is the extension of F# classes with dynamic properties.\nThis is useful when you want to add arbitrarily typed properties to a class at runtime.\n\nWhy would you want to do that?\n\nYes, The type system is one of the core strengths of F#, and it is awesome.\nHowever, there are cases where a static domain model is either unfeasible or not flexible enough, especially when interfacing with dynamic languages such as JavaScript or Python.\nDynamicObj is transpilable into JS and Python via Fable, meaning you can use it to create classes that are usable in both .NET and those languages, while making their usage (e.g., the setting of dynamic properties) both safe in .NET and idiomatic in JS/Python.\nGet started\n#r \u0026quot;nuget: Fable.Core\u0026quot; // Needed if working with Fable\n\nopen DynamicObj\nopen Fable.Core // Needed if working with Fable\n\n[\u0026lt;AttachMembers\u0026gt;] // AttachMembers needed if working with Fable\ntype Person(id : int, name : string) =\n \n // Include this in your class\n inherit DynamicObj()\n\n // Mutable static property\n let mutable _name = name\n member this.Name\n with get() = _name\n and set(value) = _name \u0026lt;- value\n\n // Immutable static property\n member this.ID \n with get() = id\n\nlet p = Person(1337,\u0026quot;John\u0026quot;)\n\nAccessing static and dynamic properties\nAny class inheriting from DynamicObj can have static and dynamic properties, and both are accessible via various instance methods.\nAccess Static Properties:\np.Name\n\n\u0022John\u0022\np.GetPropertyValue(\u0026quot;Name\u0026quot;)\n\n\u0022John\u0022\nOverwrite mutable static property\np.SetProperty(\u0026quot;Name\u0026quot;,\u0026quot;Jane\u0026quot;)\np.GetPropertyValue(\u0026quot;Name\u0026quot;)\n\n\u0022Jane\u0022\nYou cannot overwrite mutable static properties\np.SetProperty(\u0026quot;ID\u0026quot;,1234) // throws an excpection\n\np.GetPropertyValue(\u0026quot;ID\u0026quot;)\n\n1337\nSet dynamic properties\np.SetProperty(\u0026quot;Address\u0026quot;,\u0026quot;FunStreet\u0026quot;)\np.GetPropertyValue(\u0026quot;Address\u0026quot;)\n\n\u0022FunStreet\u0022\nSafe and typed access to dynamic properties\nNote that all properties returted by GetPropertyValue are boxed in .NET.\nIf you want to get the value in a typed manner, you can use the TryGetTypedPropertyValue method:\np.TryGetTypedPropertyValue\u0026lt;string\u0026gt;(\u0026quot;Name\u0026quot;)\n\nSome \u0022Jane\u0022\np.TryGetTypedPropertyValue\u0026lt;int\u0026gt;(\u0026quot;Name\u0026quot;)\n\n\u0026lt;null\u0026gt;\np.TryGetTypedPropertyValue\u0026lt;string\u0026gt;(\u0026quot;I Do Not Exist\u0026quot;)\n\n\u0026lt;null\u0026gt;\nAttention: the TryGetTypedPropertyValue method is not transpilable via Fable as it can only provide access to the types known at transpilation.\nHowever, You can use the respective module function to transpile typed dynamic member access.\nThe DynObj module\nThis module provides a lot of API functions that are not not desired as static methods on DynamicObj, as it would be confusing if they ended up on inheriting classes.\nIt also supports pipeline chaining.\np\n|\u0026gt; DynObj.tryGetTypedPropertyValue\u0026lt;int\u0026gt; \u0026quot;ID\u0026quot;\n\nSome 1337\np\n|\u0026gt; DynObj.withProperty \u0026quot;Another\u0026quot; \u0026quot;prop\u0026quot;\n|\u0026gt; DynObj.withProperty \u0026quot;Yes\u0026quot; 42\n|\u0026gt; DynObj.withoutProperty \u0026quot;Address\u0026quot;\n|\u0026gt; DynObj.withOptionalProperty \u0026quot;Maybe\u0026quot; (Some \u0026quot;yes\u0026quot;)\n|\u0026gt; DynObj.withOptionalProperty \u0026quot;Maybe not\u0026quot; None\n|\u0026gt; DynObj.format\n\n\u0022Name: Jane\nID: 1337\n?Maybe: yes\n?Another: prop\n?Yes: 42\u0022\nSerialization\nSerialization to a JSON string that contains both static and dynamic properties is supported out-of-the-box when using Newtonsoft.Json:\n#r \u0026quot;nuget: Newtonsoft.Json\u0026quot;\n\nopen Newtonsoft.Json\n\np\n|\u0026gt; JsonConvert.SerializeObject\n\n\u0022{\u0022Name\u0022:\u0022Jane\u0022,\u0022ID\u0022:1337,\u0022Maybe\u0022:\u0022yes\u0022,\u0022Another\u0022:\u0022prop\u0022,\u0022Yes\u0022:42}\u0022\n","headings":["DynamicObj","Get started","Accessing static and dynamic properties","Access Static Properties:","Overwrite mutable static property","You cannot overwrite mutable static properties","Set dynamic properties","Safe and typed access to dynamic properties","The DynObj module","Serialization"],"type":"content"}] \ No newline at end of file diff --git a/reference/dynamicobj-copyutils.html b/reference/dynamicobj-copyutils.html index eb58d35..7cc9917 100644 --- a/reference/dynamicobj-copyutils.html +++ b/reference/dynamicobj-copyutils.html @@ -143,19 +143,19 @@

- +

- CopyUtils.tryDeepCopyObj o + CopyUtils.tryDeepCopyObj (o, ?includeInstanceProperties)

-
+
Full Usage: - CopyUtils.tryDeepCopyObj o + CopyUtils.tryDeepCopyObj (o, ?includeInstanceProperties)

Parameters: @@ -166,6 +166,18 @@

: obj + - + The object that should be deep copied + +
+ + + ?includeInstanceProperties + + : + bool + - + Whether to include instance properties (= 'static' properties on the class) as dynamic properties on the new instance for matched DynamicObj. Default is true
@@ -189,11 +201,34 @@

- +

- internal helper function to deep copy a boxed object (if possible) + + function to deep copy a boxed object (if possible) + The following cases are handled (in this precedence): + + - Basic F# types (bool, byte, sbyte, int16, uint16, int, uint, int64, uint64, nativeint, unativeint, float, float32, char, string, unit, decimal) + + - ResizeArrays and Dictionaries containing any combination of basic F# types + + - Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values + + - array, list, ResizeArray: These collections of DynamicObj are copied as a new collection with recursively deep copied elements. + + - System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property. + + - DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively. + if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance. + + Note on Classes that inherit from DynamicObj: + + Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement ICloneable. + The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties. + It should be possible to 'recover' the original type by checking if the needed properties exist as dynamic properties, + and then passing them to the class constructor if needed. +

@@ -205,7 +240,23 @@

: obj -
+
+

+ The object that should be deep copied +

+
+
+ + ?includeInstanceProperties + + : + bool +
+
+

+ Whether to include instance properties (= 'static' properties on the class) as dynamic properties on the new instance for matched DynamicObj. Default is true +

+
diff --git a/reference/dynamicobj-dynamicobj.html b/reference/dynamicobj-dynamicobj.html index 8a2b0c5..af88204 100644 --- a/reference/dynamicobj-dynamicobj.html +++ b/reference/dynamicobj-dynamicobj.html @@ -145,7 +145,7 @@

- +

@@ -154,7 +154,7 @@

-
+
Full Usage: DynamicObj() @@ -203,7 +203,7 @@

- +

@@ -212,12 +212,26 @@

-
+
Full Usage: this.DeepCopyProperties

+ Parameters: +
    + + + ?includeInstanceProperties + + : + bool + - + Whether to include instance properties (= 'static' properties on the class) as dynamic properties on the new instance. Default is true + +
    +
+
Returns: obj @@ -237,7 +251,7 @@

- +

@@ -252,7 +266,11 @@

The following cases are handled (in this precedence): - - Basic F# types (int, float, bool, string, char, byte, sbyte, int16, uint16, int32, uint32, int64, uint64, single, decimal) + - Basic F# types (bool, byte, sbyte, int16, uint16, int, uint, int64, uint64, nativeint, unativeint, float, float32, char, string, unit, decimal) + + - ResizeArrays and Dictionaries containing any combination of basic F# types + + - Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values - array, list, ResizeArray: These collections of DynamicObj are copied as a new collection with recursively deep copied elements. @@ -264,13 +282,27 @@

Note on Classes that inherit from DynamicObj: Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement ICloneable. - The deep coopied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties. + The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties. It should be possible to 'recover' the original type by checking if the needed properties exist as dynamic properties, and then passing them to the class constructor if needed.

+
+
+ + ?includeInstanceProperties + + : + bool +
+
+

+ Whether to include instance properties (= 'static' properties on the class) as dynamic properties on the new instance. Default is true +

+
+
@@ -286,7 +318,7 @@

- +

@@ -295,7 +327,7 @@

-
+
Full Usage: this.DeepCopyPropertiesTo @@ -320,7 +352,17 @@

: bool - - Whether existing properties on the target object will be overwritten + Whether existing properties on the target object will be overwritten. Default is false + +
+ + + ?includeInstanceProperties + + : + bool + - + Whether to include instance properties (= 'static' properties on the class) as dynamic properties on the new instance. Default is true
@@ -339,7 +381,7 @@

- +

@@ -354,7 +396,11 @@

The following cases are handled (in this precedence): - - Basic F# types (int, float, bool, string, char, byte, sbyte, int16, uint16, int32, uint32, int64, uint64, single, decimal) + - Basic F# types (bool, byte, sbyte, int16, uint16, int, uint, int64, uint64, nativeint, unativeint, float, float32, char, string, unit, decimal) + + - ResizeArrays and Dictionaries containing any combination of basic F# types + + - Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values - array, list, ResizeArray: These collections of DynamicObj are copied as a new collection with recursively deep copied elements. @@ -366,7 +412,7 @@

Note on Classes that inherit from DynamicObj: Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement ICloneable. - The deep coopied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties. + The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties. It should be possible to 'recover' the original type by checking if the needed properties exist as dynamic properties, and then passing them to the class constructor if needed. @@ -395,7 +441,19 @@

- Whether existing properties on the target object will be overwritten + Whether existing properties on the target object will be overwritten. Default is false +

+
+
+ + ?includeInstanceProperties + + : + bool +
+
+

+ Whether to include instance properties (= 'static' properties on the class) as dynamic properties on the new instance. Default is true

@@ -405,7 +463,7 @@

- +

@@ -414,7 +472,7 @@

-
+
Full Usage: this.GetProperties @@ -494,7 +552,7 @@

- +

@@ -503,7 +561,7 @@

-
+
Full Usage: this.GetPropertyHelpers @@ -583,7 +641,7 @@

- +

@@ -592,7 +650,7 @@

-
+
Full Usage: this.GetPropertyNames @@ -672,7 +730,7 @@

- +

@@ -681,7 +739,7 @@

-
+
Full Usage: this.GetPropertyValue @@ -771,7 +829,7 @@

- +

@@ -780,7 +838,7 @@

-
+
Full Usage: this.Properties @@ -810,7 +868,7 @@

- +

@@ -819,7 +877,7 @@

-
+
Full Usage: this.RemoveProperty @@ -911,7 +969,7 @@

- +

@@ -920,7 +978,7 @@

-
+
Full Usage: this.SetProperty @@ -1006,7 +1064,7 @@

- +

@@ -1015,7 +1073,7 @@

-
+
Full Usage: this.ShallowCopyDynamicProperties @@ -1067,7 +1125,7 @@

- +

@@ -1076,7 +1134,7 @@

-
+
Full Usage: this.ShallowCopyDynamicPropertiesTo @@ -1168,7 +1226,7 @@

- +

@@ -1177,7 +1235,7 @@

-
+
Full Usage: this.TryGetDynamicPropertyHelper @@ -1255,7 +1313,7 @@

- +

@@ -1264,7 +1322,7 @@

-
+
Full Usage: this.TryGetPropertyHelper @@ -1342,7 +1400,7 @@

- +

@@ -1351,7 +1409,7 @@

-
+
Full Usage: this.TryGetPropertyValue @@ -1423,7 +1481,7 @@

- +

@@ -1432,7 +1490,7 @@

-
+
Full Usage: this.TryGetStaticPropertyHelper @@ -1510,7 +1568,7 @@

- +

@@ -1519,7 +1577,7 @@

-
+
Full Usage: this.TryGetTypedPropertyValue @@ -1621,7 +1679,7 @@

- +

@@ -1630,7 +1688,7 @@

-
+
Full Usage: lookup ? name @@ -1675,7 +1733,7 @@

- +

@@ -1723,7 +1781,7 @@

- +

@@ -1732,7 +1790,7 @@

-
+
Full Usage: (?<-) (lookup, name, value) @@ -1780,7 +1838,7 @@

- +

@@ -1827,7 +1885,7 @@

- +

@@ -1836,7 +1894,7 @@

-
+
Full Usage: DynamicObj.ofDict dynamicProperties diff --git a/reference/dynamicobj-dynobj.html b/reference/dynamicobj-dynobj.html index 7957071..59fe0ef 100644 --- a/reference/dynamicobj-dynobj.html +++ b/reference/dynamicobj-dynobj.html @@ -1253,6 +1253,137 @@

+

+ + + tryDeepCopyObj includeInstanceProperties o + + +

+
+
+
+ Full Usage: + tryDeepCopyObj includeInstanceProperties o +
+
+ Parameters: +
    + + + includeInstanceProperties + + : + bool + - + Whether to include instance properties (= 'static' properties on the class) as dynamic properties on the new instance for matched DynamicObj. + +
    + + + o + + : + DynamicObj + - + The object that should be deep copied + +
    +
+
+ + Returns: + obj + +
+
+
+
+ + +
+ +
+ + + + + +

+ + function to deep copy a boxed object (if possible) + + The following cases are handled (in this precedence): + + - Basic F# types (bool, byte, sbyte, int16, uint16, int, uint, int64, uint64, nativeint, unativeint, float, float32, char, string, unit, decimal) + + - ResizeArrays and Dictionaries containing any combination of basic F# types + + - Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values + + - array, list, ResizeArray: These collections of DynamicObj are copied as a new collection with recursively deep copied elements. + + - System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property. + + - DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively. + if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance. + + Note on Classes that inherit from DynamicObj: + + Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement ICloneable. + The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties. + It should be possible to 'recover' the original type by checking if the needed properties exist as dynamic properties, + and then passing them to the class constructor if needed. + +

+
+
+
+
+ + includeInstanceProperties + + : + bool +
+
+

+ Whether to include instance properties (= 'static' properties on the class) as dynamic properties on the new instance for matched DynamicObj. +

+
+
+ + o + + : + DynamicObj +
+
+

+ The object that should be deep copied +

+
+
+
+
+ + Returns: + + obj +
+
+
+
+ + + + +
+

@@ -1261,7 +1392,7 @@

-
+
Full Usage: tryGetPropertyValue propertyName dynObj @@ -1361,7 +1492,7 @@

- +

@@ -1370,7 +1501,7 @@

-
+
Full Usage: tryGetTypedPropertyValue propertyName dynObj @@ -1475,7 +1606,7 @@

- +

@@ -1484,7 +1615,7 @@

-
+
Full Usage: withOptionalProperty propertyName propertyValue dynObj @@ -1615,7 +1746,7 @@

- +

@@ -1624,7 +1755,7 @@

-
+
Full Usage: withOptionalPropertyBy propertyName propertyValue mapping dynObj @@ -1777,7 +1908,7 @@

- +

@@ -1786,7 +1917,7 @@

-
+
Full Usage: withProperty propertyName propertyValue dynObj @@ -1916,7 +2047,7 @@

- +

@@ -1925,7 +2056,7 @@

-
+
Full Usage: withoutProperty propertyName dynObj diff --git a/reference/dynamicobj-fablejs-dictionaries.html b/reference/dynamicobj-fablejs-dictionaries.html new file mode 100644 index 0000000..e5138fd --- /dev/null +++ b/reference/dynamicobj-fablejs-dictionaries.html @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + Dictionaries (DynamicObj) | DynamicObj + + + + + + + + + + + + +
+
+ + + Header menu logo + DynamicObj + +
+
+ + + + + +
+
+ +
+
+
+

+ Dictionaries Module +

+ +
+
+

+ +

+
+
+
+

+ Functions and values +

+ + + + + + + + + + + + + + + + + +
+ Function or value + + Description +
+
+ +

+ + + isDict o + + +

+
+
+
+ Full Usage: + isDict o +
+
+ Parameters: +
    + + + o + + : + obj + +
    +
+
+ + Returns: + bool + +
+
+
+
+
+
+
+ + o + + : + obj +
+
+
+
+
+ + Returns: + + bool +
+
+
+
+
+ +

+ + + isMap o + + +

+
+
+
+ Full Usage: + isMap o +
+
+ Parameters: +
    + + + o + + : + obj + +
    +
+
+ + Returns: + bool + +
+
+
+
+
+
+
+ + o + + : + obj +
+
+
+
+
+ + Returns: + + bool +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + + +
+
    +

    Type something to start searching.

    +
    +
    + + + + + + + \ No newline at end of file diff --git a/reference/dynamicobj-fablejs-interfaces.html b/reference/dynamicobj-fablejs-interfaces.html index c435b02..d3c0124 100644 --- a/reference/dynamicobj-fablejs-interfaces.html +++ b/reference/dynamicobj-fablejs-interfaces.html @@ -137,7 +137,7 @@

    - +

    @@ -146,7 +146,7 @@

    -
    +
    Full Usage: cloneICloneable o @@ -198,7 +198,7 @@

    - +

    @@ -207,7 +207,7 @@

    -
    +
    Full Usage: implementsICloneable o diff --git a/reference/dynamicobj-fablejs-propertydescriptor.html b/reference/dynamicobj-fablejs-propertydescriptor.html index b20f574..c559d6a 100644 --- a/reference/dynamicobj-fablejs-propertydescriptor.html +++ b/reference/dynamicobj-fablejs-propertydescriptor.html @@ -137,7 +137,7 @@

    - +

    @@ -146,7 +146,7 @@

    -
    +
    Full Usage: containsGetter o @@ -198,7 +198,7 @@

    - +

    @@ -207,7 +207,7 @@

    -
    +
    Full Usage: containsSetter o @@ -259,7 +259,7 @@

    - +

    @@ -268,7 +268,7 @@

    -
    +
    Full Usage: isFunction o @@ -320,7 +320,7 @@

    - +

    @@ -329,7 +329,7 @@

    -
    +
    Full Usage: isWritable o @@ -381,7 +381,7 @@

    - +

    @@ -390,7 +390,7 @@

    -
    +
    Full Usage: tryGetIsWritable o @@ -442,7 +442,7 @@

    - +

    @@ -451,7 +451,7 @@

    -
    +
    Full Usage: tryGetPropertyValue o propName @@ -519,7 +519,7 @@

    - +

    @@ -528,7 +528,7 @@

    -
    +
    Full Usage: valueIsFunction o diff --git a/reference/dynamicobj-fablejs.html b/reference/dynamicobj-fablejs.html index c158b38..8e82199 100644 --- a/reference/dynamicobj-fablejs.html +++ b/reference/dynamicobj-fablejs.html @@ -128,6 +128,33 @@

    + + +

    + + + Dictionaries + + +

    + + +
    + + + + + +

    + +

    +
    + +

    @@ -204,7 +231,7 @@

    - +

    @@ -213,7 +240,7 @@

    -
    +
    Full Usage: createGetter propName o @@ -281,7 +308,7 @@

    - +

    @@ -290,7 +317,7 @@

    -
    +
    Full Usage: createRemover propName isStatic @@ -358,7 +385,7 @@

    - +

    @@ -367,7 +394,7 @@

    -
    +
    Full Usage: createSetter propName o value @@ -451,7 +478,7 @@

    - +

    @@ -460,7 +487,7 @@

    -
    +
    Full Usage: deleteDynamicPropertyValue o propName @@ -528,7 +555,7 @@

    - +

    @@ -537,7 +564,7 @@

    -
    +
    Full Usage: getDynamicPropertyHelpers o @@ -589,7 +616,7 @@

    - +

    @@ -598,7 +625,7 @@

    -
    +
    Full Usage: getOwnPropertyNames o @@ -650,7 +677,7 @@

    - +

    @@ -659,7 +686,7 @@

    -
    +
    Full Usage: getPropertyHelpers o @@ -711,7 +738,7 @@

    - +

    @@ -720,7 +747,7 @@

    -
    +
    Full Usage: getPropertyNames o @@ -772,7 +799,7 @@

    - +

    @@ -781,7 +808,7 @@

    -
    +
    Full Usage: getPropertyValue o propName @@ -849,7 +876,7 @@

    - +

    @@ -858,7 +885,7 @@

    -
    +
    Full Usage: getPrototype o @@ -910,7 +937,7 @@

    - +

    @@ -919,7 +946,7 @@

    -
    +
    Full Usage: getStaticPropertyHelpers o @@ -971,7 +998,7 @@

    - +

    @@ -980,7 +1007,7 @@

    -
    +
    Full Usage: getStaticPropertyNames o @@ -1032,7 +1059,7 @@

    - +

    @@ -1041,7 +1068,7 @@

    -
    +
    Full Usage: isTranspiledPropertyHelper propertyName @@ -1093,7 +1120,7 @@

    - +

    @@ -1102,7 +1129,7 @@

    -
    +
    Full Usage: removeStaticPropertyValue o propName @@ -1170,7 +1197,7 @@

    - +

    @@ -1179,7 +1206,7 @@

    -
    +
    Full Usage: setPropertyValue o propName value @@ -1263,7 +1290,7 @@

    - +

    @@ -1272,7 +1299,7 @@

    -
    +
    Full Usage: transpiledPropertyRegex @@ -1302,7 +1329,7 @@

    - +

    @@ -1311,7 +1338,7 @@

    -
    +
    Full Usage: tryDynamicPropertyHelperFromDescriptor pd name @@ -1379,7 +1406,7 @@

    - +

    @@ -1388,7 +1415,7 @@

    -
    +
    Full Usage: tryGetDynamicPropertyDescriptor o propName @@ -1456,7 +1483,7 @@

    - +

    @@ -1465,7 +1492,7 @@

    -
    +
    Full Usage: tryGetDynamicPropertyHelper o propName @@ -1533,7 +1560,7 @@

    - +

    @@ -1542,7 +1569,7 @@

    -
    +
    Full Usage: tryGetPropertyDescriptor o propName @@ -1610,7 +1637,7 @@

    - +

    @@ -1619,7 +1646,7 @@

    -
    +
    Full Usage: tryGetStaticPropertyDescriptor o propName @@ -1687,7 +1714,7 @@

    - +

    @@ -1696,7 +1723,7 @@

    -
    +
    Full Usage: tryGetStaticPropertyHelper o propName @@ -1764,7 +1791,7 @@

    - +

    @@ -1773,7 +1800,7 @@

    -
    +
    Full Usage: tryStaticPropertyHelperFromDescriptor pd name diff --git a/reference/dynamicobj-fablepy-dictionaries.html b/reference/dynamicobj-fablepy-dictionaries.html new file mode 100644 index 0000000..1ebfb41 --- /dev/null +++ b/reference/dynamicobj-fablepy-dictionaries.html @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + Dictionaries (DynamicObj) | DynamicObj + + + + + + + + + + + + +
    +
    + + + Header menu logo + DynamicObj + +
    +
    + + + + + +
    +
    + +
    +
    +
    +

    + Dictionaries Module +

    + +
    +
    +

    + +

    +
    +
    +
    +

    + Functions and values +

    + + + + + + + + + + + + + +
    + Function or value + + Description +
    +
    + +

    + + + isDict o + + +

    +
    +
    +
    + Full Usage: + isDict o +
    +
    + Parameters: +
      + + + o + + : + obj + +
      +
    +
    + + Returns: + bool + +
    +
    +
    +
    +
    +
    +
    + + o + + : + obj +
    +
    +
    +
    +
    + + Returns: + + bool +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + + +
    +
      +

      Type something to start searching.

      +
      +
      + + + + + + + \ No newline at end of file diff --git a/reference/dynamicobj-fablepy-dictionary.html b/reference/dynamicobj-fablepy-dictionary.html index 5140699..f0f2dc6 100644 --- a/reference/dynamicobj-fablepy-dictionary.html +++ b/reference/dynamicobj-fablepy-dictionary.html @@ -137,7 +137,7 @@

      - +

      @@ -146,7 +146,7 @@

      -
      +
      Full Usage: choose f d @@ -214,7 +214,7 @@

      - +

      @@ -223,7 +223,7 @@

      -
      +
      Full Usage: ofSeq s diff --git a/reference/dynamicobj-fablepy-interfaces.html b/reference/dynamicobj-fablepy-interfaces.html index f4a935f..5fd0321 100644 --- a/reference/dynamicobj-fablepy-interfaces.html +++ b/reference/dynamicobj-fablepy-interfaces.html @@ -137,7 +137,7 @@

      - +

      @@ -146,7 +146,7 @@

      -
      +
      Full Usage: cloneICloneable o @@ -198,7 +198,7 @@

      - +

      @@ -207,7 +207,7 @@

      -
      +
      Full Usage: implementsICloneable o diff --git a/reference/dynamicobj-fablepy-propertyobject.html b/reference/dynamicobj-fablepy-propertyobject.html index e11ddaf..45bdc16 100644 --- a/reference/dynamicobj-fablepy-propertyobject.html +++ b/reference/dynamicobj-fablepy-propertyobject.html @@ -152,7 +152,7 @@

      - +

      @@ -161,7 +161,7 @@

      -
      +
      Full Usage: this.fget @@ -194,7 +194,7 @@

      - +

      @@ -203,7 +203,7 @@

      -
      +
      Full Usage: this.fset diff --git a/reference/dynamicobj-fablepy-propertyobjectmodule.html b/reference/dynamicobj-fablepy-propertyobjectmodule.html index 153db1c..c885389 100644 --- a/reference/dynamicobj-fablepy-propertyobjectmodule.html +++ b/reference/dynamicobj-fablepy-propertyobjectmodule.html @@ -137,7 +137,7 @@

      - +

      @@ -146,7 +146,7 @@

      -
      +
      Full Usage: containsGetter o @@ -198,7 +198,7 @@

      - +

      @@ -207,7 +207,7 @@

      -
      +
      Full Usage: containsSetter o @@ -259,7 +259,7 @@

      - +

      @@ -268,7 +268,7 @@

      -
      +
      Full Usage: getGetter o @@ -320,7 +320,7 @@

      - +

      @@ -329,7 +329,7 @@

      -
      +
      Full Usage: getSetter o @@ -381,7 +381,7 @@

      - +

      @@ -390,7 +390,7 @@

      -
      +
      Full Usage: isProperty o @@ -442,7 +442,7 @@

      - +

      @@ -451,7 +451,7 @@

      -
      +
      Full Usage: isWritable o @@ -503,7 +503,7 @@

      - +

      @@ -512,7 +512,7 @@

      -
      +
      Full Usage: tryGetGetter o @@ -564,7 +564,7 @@

      - +

      @@ -573,7 +573,7 @@

      -
      +
      Full Usage: tryGetSetter o @@ -625,7 +625,7 @@

      - +

      @@ -634,7 +634,7 @@

      -
      +
      Full Usage: tryProperty o diff --git a/reference/dynamicobj-fablepy.html b/reference/dynamicobj-fablepy.html index 6dfdaea..567e11f 100644 --- a/reference/dynamicobj-fablepy.html +++ b/reference/dynamicobj-fablepy.html @@ -128,6 +128,33 @@

      + + +

      + + + Dictionaries + + +

      + + +
      + + + + + +

      + +

      +
      + +

      @@ -258,7 +285,7 @@

      - +

      @@ -267,7 +294,7 @@

      -
      +
      Full Usage: createGetter propName o @@ -335,7 +362,7 @@

      - +

      @@ -344,7 +371,7 @@

      -
      +
      Full Usage: createRemover propName isStatic @@ -412,7 +439,7 @@

      - +

      @@ -421,7 +448,7 @@

      -
      +
      Full Usage: createSetter propName o value @@ -491,7 +518,7 @@

      - +

      @@ -500,7 +527,7 @@

      -
      +
      Full Usage: deleteDynamicPropertyValue o propName @@ -568,7 +595,7 @@

      - +

      @@ -577,7 +604,7 @@

      -
      +
      Full Usage: getClass o @@ -629,7 +656,7 @@

      - +

      @@ -638,7 +665,7 @@

      -
      +
      Full Usage: getDynamicPropertyHelpers o @@ -690,7 +717,7 @@

      - +

      @@ -699,7 +726,7 @@

      -
      +
      Full Usage: getMemberObject o propName @@ -767,7 +794,7 @@

      - +

      @@ -776,7 +803,7 @@

      -
      +
      Full Usage: getOwnMemberObjects o @@ -828,7 +855,7 @@

      - +

      @@ -837,7 +864,7 @@

      -
      +
      Full Usage: getPropertyHelpers o @@ -889,7 +916,7 @@

      - +

      @@ -898,7 +925,7 @@

      -
      +
      Full Usage: getPropertyNames o @@ -950,7 +977,7 @@

      - +

      @@ -959,7 +986,7 @@

      -
      +
      Full Usage: getPropertyValue o propName @@ -1027,7 +1054,7 @@

      - +

      @@ -1036,7 +1063,7 @@

      -
      +
      Full Usage: getStaticPropertyHelpers o @@ -1088,7 +1115,7 @@

      - +

      @@ -1097,7 +1124,7 @@

      -
      +
      Full Usage: getStaticPropertyObjects o @@ -1149,7 +1176,7 @@

      - +

      @@ -1158,7 +1185,7 @@

      -
      +
      Full Usage: isTranspiledPropertyHelper propertyName @@ -1210,7 +1237,7 @@

      - +

      @@ -1219,7 +1246,7 @@

      -
      +
      Full Usage: removeStaticPropertyValue o propName @@ -1273,7 +1300,7 @@

      - +

      @@ -1282,7 +1309,7 @@

      -
      +
      Full Usage: setPropertyValue o propName value @@ -1352,7 +1379,7 @@

      - +

      @@ -1361,7 +1388,7 @@

      -
      +
      Full Usage: transpiledPropertyRegex @@ -1391,7 +1418,7 @@

      - +

      @@ -1400,7 +1427,7 @@

      -
      +
      Full Usage: tryGetDynamicPropertyHelper o propName @@ -1468,7 +1495,7 @@

      - +

      @@ -1477,7 +1504,7 @@

      -
      +
      Full Usage: tryGetPropertyObject o propName @@ -1545,7 +1572,7 @@

      - +

      @@ -1554,7 +1581,7 @@

      -
      +
      Full Usage: tryGetStaticPropertyHelper o propName diff --git a/reference/dynamicobj-hashcodes.html b/reference/dynamicobj-hashcodes.html index fd60b82..b1aef4f 100644 --- a/reference/dynamicobj-hashcodes.html +++ b/reference/dynamicobj-hashcodes.html @@ -131,7 +131,7 @@

      - +

      @@ -140,7 +140,7 @@

      -
      +
      Full Usage: boxHashArray a @@ -192,7 +192,7 @@

      - +

      @@ -201,7 +201,7 @@

      -
      +
      Full Usage: boxHashKeyValSeq a @@ -253,7 +253,7 @@

      - +

      @@ -262,7 +262,7 @@

      -
      +
      Full Usage: boxHashOption a @@ -314,7 +314,7 @@

      - +

      @@ -323,7 +323,7 @@

      -
      +
      Full Usage: boxHashSeq a @@ -375,7 +375,7 @@

      - +

      @@ -384,7 +384,7 @@

      -
      +
      Full Usage: hash obj @@ -436,7 +436,7 @@

      - +

      @@ -445,7 +445,7 @@

      -
      +
      Full Usage: hashDateTime dt @@ -497,7 +497,7 @@

      - +

      @@ -506,7 +506,7 @@

      -
      +
      Full Usage: mergeHashes hash1 hash2 diff --git a/reference/dynamicobj-immutabledynamicobj.html b/reference/dynamicobj-immutabledynamicobj.html index 84dd0fd..25fd5ad 100644 --- a/reference/dynamicobj-immutabledynamicobj.html +++ b/reference/dynamicobj-immutabledynamicobj.html @@ -142,7 +142,7 @@

      - +

      @@ -151,7 +151,7 @@

      -
      +
      Full Usage: ImmutableDynamicObj() @@ -199,7 +199,7 @@

      - +

      @@ -208,7 +208,7 @@

      -
      +
      Full Usage: ImmutableDynamicObj(map) @@ -279,7 +279,7 @@

      - +

      @@ -288,7 +288,7 @@

      -
      +
      Full Usage: this[index] @@ -358,7 +358,7 @@

      - +

      @@ -367,7 +367,7 @@

      -
      +
      Full Usage: this.TryGetTypedValue @@ -419,7 +419,7 @@

      - +

      @@ -428,7 +428,7 @@

      -
      +
      Full Usage: this.TryGetValue @@ -499,7 +499,7 @@

      - +

      @@ -508,7 +508,7 @@

      -
      +
      Full Usage: ImmutableDynamicObj.add name newValue object @@ -612,7 +612,7 @@

      - +

      @@ -621,7 +621,7 @@

      -
      +
      Full Usage: ImmutableDynamicObj.addOpt name newValue object @@ -724,7 +724,7 @@

      - +

      @@ -733,7 +733,7 @@

      -
      +
      Full Usage: ImmutableDynamicObj.addOptBy name newValue f object @@ -852,7 +852,7 @@

      - +

      @@ -861,7 +861,7 @@

      -
      +
      Full Usage: ImmutableDynamicObj.combineWith sourceObject targetObject @@ -950,7 +950,7 @@

      - +

      @@ -959,7 +959,7 @@

      -
      +
      Full Usage: ImmutableDynamicObj.empty @@ -989,7 +989,7 @@

      - +

      @@ -998,7 +998,7 @@

      -
      +
      Full Usage: ImmutableDynamicObj.format object @@ -1050,7 +1050,7 @@

      - +

      @@ -1059,7 +1059,7 @@

      -
      +
      Full Usage: ImmutableDynamicObj.print object @@ -1097,7 +1097,7 @@

      - +

      @@ -1106,7 +1106,7 @@

      -
      +
      Full Usage: ImmutableDynamicObj.remove name object diff --git a/reference/dynamicobj-immutabledynamicobjextensions.html b/reference/dynamicobj-immutabledynamicobjextensions.html index 268263a..6e6c6fe 100644 --- a/reference/dynamicobj-immutabledynamicobjextensions.html +++ b/reference/dynamicobj-immutabledynamicobjextensions.html @@ -143,7 +143,7 @@

      - +

      @@ -152,7 +152,7 @@

      -
      +
      Full Usage: ImmutableDynamicObjExtensions.AddItem(this, name, newValue) @@ -257,7 +257,7 @@

      - +

      @@ -266,7 +266,7 @@

      -
      +
      Full Usage: ImmutableDynamicObjExtensions.Format(this) @@ -318,7 +318,7 @@

      - +

      @@ -327,7 +327,7 @@

      -
      +
      Full Usage: ImmutableDynamicObjExtensions.Print(this) @@ -365,7 +365,7 @@

      - +

      @@ -374,7 +374,7 @@

      -
      +
      Full Usage: ImmutableDynamicObjExtensions.RemoveItem(this, name) diff --git a/reference/dynamicobj-immutabledynamicobjjsonconverter.html b/reference/dynamicobj-immutabledynamicobjjsonconverter.html index 5e4277f..ca89e15 100644 --- a/reference/dynamicobj-immutabledynamicobjjsonconverter.html +++ b/reference/dynamicobj-immutabledynamicobjjsonconverter.html @@ -141,7 +141,7 @@

      - +

      @@ -150,7 +150,7 @@

      -
      +
      Full Usage: ImmutableDynamicObjJsonConverter() diff --git a/reference/dynamicobj-operators.html b/reference/dynamicobj-operators.html index e1b8293..f248e4c 100644 --- a/reference/dynamicobj-operators.html +++ b/reference/dynamicobj-operators.html @@ -131,7 +131,7 @@

      - +

      @@ -140,7 +140,7 @@

      -
      +
      Full Usage: (++) object (name, newValue) @@ -244,7 +244,7 @@

      - +

      @@ -253,7 +253,7 @@

      -
      +
      Full Usage: (++?) object (name, newValue) @@ -356,7 +356,7 @@

      - +

      @@ -365,7 +365,7 @@

      -
      +
      Full Usage: (++??) object (name, newValue, f) @@ -484,7 +484,7 @@

      - +

      @@ -493,7 +493,7 @@

      -
      +
      Full Usage: object -- name diff --git a/reference/dynamicobj-propertyhelper.html b/reference/dynamicobj-propertyhelper.html index 2dadc9c..538a1d2 100644 --- a/reference/dynamicobj-propertyhelper.html +++ b/reference/dynamicobj-propertyhelper.html @@ -139,7 +139,7 @@

      - +

      @@ -148,7 +148,7 @@

      -
      +
      Full Usage: GetValue @@ -178,7 +178,7 @@

      - +

      @@ -187,7 +187,7 @@

      -
      +
      Full Usage: IsDynamic @@ -217,7 +217,7 @@

      - +

      @@ -226,7 +226,7 @@

      -
      +
      Full Usage: IsImmutable @@ -256,7 +256,7 @@

      - +

      @@ -265,7 +265,7 @@

      -
      +
      Full Usage: IsMutable @@ -295,7 +295,7 @@

      - +

      @@ -304,7 +304,7 @@

      -
      +
      Full Usage: IsStatic @@ -334,7 +334,7 @@

      - +

      @@ -343,7 +343,7 @@

      -
      +
      Full Usage: Name @@ -373,7 +373,7 @@

      - +

      @@ -382,7 +382,7 @@

      -
      +
      Full Usage: RemoveValue @@ -412,7 +412,7 @@

      - +

      @@ -421,7 +421,7 @@

      -
      +
      Full Usage: SetValue @@ -473,7 +473,7 @@

      - +

      @@ -482,7 +482,7 @@

      -
      +
      Full Usage: PropertyHelper.fromPropertyInfo pI diff --git a/reference/dynamicobj-reflectionutils.html b/reference/dynamicobj-reflectionutils.html index 6ce8ca0..3a1b5f8 100644 --- a/reference/dynamicobj-reflectionutils.html +++ b/reference/dynamicobj-reflectionutils.html @@ -131,7 +131,7 @@

      - +

      @@ -140,7 +140,7 @@

      -
      +
      Full Usage: getStaticProperties o @@ -192,7 +192,7 @@

      - +

      @@ -201,7 +201,7 @@

      -
      +
      Full Usage: removeProperty o propName @@ -269,7 +269,7 @@

      - +

      @@ -278,7 +278,7 @@

      -
      +
      Full Usage: tryGetPropertyValue o propName @@ -346,7 +346,7 @@

      - +

      @@ -355,7 +355,7 @@

      -
      +
      Full Usage: tryGetPropertyValueAs o propName @@ -441,7 +441,7 @@

      - +

      @@ -450,7 +450,7 @@

      -
      +
      Full Usage: tryGetStaticPropertyInfo o propName @@ -536,7 +536,7 @@

      - +

      @@ -545,7 +545,7 @@

      -
      +
      Full Usage: trySetPropertyValue o propName value diff --git a/reference/dynamicobj.html b/reference/dynamicobj.html index d3ef43e..6cd8136 100644 --- a/reference/dynamicobj.html +++ b/reference/dynamicobj.html @@ -125,7 +125,7 @@

      - +