You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`ResizeArrays` and `Dictionaries` containing any combination of basic F# types
17
+
18
+
-`Dictionaries` containing `DynamicObj` as keys or values in any combination with `DynamicObj` or basic F# types as keys or values
19
+
20
+
-`array<DynamicObj>`, `list<DynamicObj>`, `ResizeArray<DynamicObj>`: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.
21
+
22
+
-`System.ICloneable`: If the property implements `ICloneable`, the `Clone()` method is called on the property.
23
+
24
+
-`DynamicObj` (and derived classes): properties that are themselves `DynamicObj` instances are deep copied recursively.
25
+
if a derived class has static properties (e.g. instance properties), these can be copied as dynamic properties on the new instance or ignored.
26
+
27
+
Note on Classes that inherit from `DynamicObj`:
28
+
29
+
Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement `ICloneable`.
30
+
The deep copied instances will be cast to `DynamicObj` with deep copied dynamic properties. Staic/instance properties can be copied as dynamic properties on the new instance or be ignored.
31
+
It should be possible to 'recover' the original type by checking if the needed properties exist as dynamic properties,
32
+
and then passing them to the class constructor if needed.
/// - ResizeArrays and Dictionaries containing any combination of basic F# types
229
-
///
230
-
/// - Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values
231
-
///
232
-
/// - array<DynamicObj>, list<DynamicObj>, ResizeArray<DynamicObj>: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.
233
-
///
234
-
/// - System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.
235
-
///
236
-
/// - DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively.
237
-
/// if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance.
238
-
///
239
-
/// Note on Classes that inherit from DynamicObj:
240
-
///
241
-
/// Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement ICloneable.
242
-
/// The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties.
/// - `ResizeArrays` and `Dictionaries` containing any combination of basic F# types
229
+
///
230
+
/// - `Dictionaries` containing `DynamicObj` as keys or values in any combination with `DynamicObj` or basic F# types as keys or values
231
+
///
232
+
/// - `array<DynamicObj>`, `list<DynamicObj>`, `ResizeArray<DynamicObj>`: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.
233
+
///
234
+
/// - `System.ICloneable`: If the property implements `ICloneable`, the `Clone()` method is called on the property.
235
+
///
236
+
/// - `DynamicObj` (and derived classes): properties that are themselves `DynamicObj` instances are deep copied recursively.
237
+
/// if a derived class has static properties (e.g. instance properties), these can be copied as dynamic properties on the new instance or ignored.
238
+
///
239
+
/// Note on Classes that inherit from `DynamicObj`:
240
+
///
241
+
/// Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement `ICloneable`.
242
+
/// The deep copied instances will be cast to `DynamicObj` with deep copied dynamic properties. Staic/instance properties can be copied as dynamic properties on the new instance or be ignored.
243
243
/// It should be possible to 'recover' the original type by checking if the needed properties exist as dynamic properties,
244
244
/// and then passing them to the class constructor if needed.
/// - ResizeArrays and Dictionaries containing any combination of basic F# types
273
-
///
274
-
/// - Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values
275
-
///
276
-
/// - array<DynamicObj>, list<DynamicObj>, ResizeArray<DynamicObj>: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.
277
-
///
278
-
/// - System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.
279
-
///
280
-
/// - DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively.
281
-
/// if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance.
282
-
///
283
-
/// Note on Classes that inherit from DynamicObj:
284
-
///
285
-
/// Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement ICloneable.
286
-
/// The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties.
/// - `ResizeArrays` and `Dictionaries` containing any combination of basic F# types
273
+
///
274
+
/// - `Dictionaries` containing `DynamicObj` as keys or values in any combination with `DynamicObj` or basic F# types as keys or values
275
+
///
276
+
/// - `array<DynamicObj>`, `list<DynamicObj>`, `ResizeArray<DynamicObj>`: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.
277
+
///
278
+
/// - `System.ICloneable`: If the property implements `ICloneable`, the `Clone()` method is called on the property.
279
+
///
280
+
/// - `DynamicObj` (and derived classes): properties that are themselves `DynamicObj` instances are deep copied recursively.
281
+
/// if a derived class has static properties (e.g. instance properties), these can be copied as dynamic properties on the new instance or ignored.
282
+
///
283
+
/// Note on Classes that inherit from `DynamicObj`:
284
+
///
285
+
/// Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement `ICloneable`.
286
+
/// The deep copied instances will be cast to `DynamicObj` with deep copied dynamic properties. Staic/instance properties can be copied as dynamic properties on the new instance or be ignored.
287
287
/// It should be possible to 'recover' the original type by checking if the needed properties exist as dynamic properties,
288
288
/// and then passing them to the class constructor if needed.
289
289
/// </summary>
@@ -316,23 +316,23 @@ type DynamicObj() =
316
316
///
317
317
/// The following cases are handled (in this precedence):
/// - ResizeArrays and Dictionaries containing any combination of basic F# types
322
-
///
323
-
/// - Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values
324
-
///
325
-
/// - array<DynamicObj>, list<DynamicObj>, ResizeArray<DynamicObj>: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.
326
-
///
327
-
/// - System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.
328
-
///
329
-
/// - DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively.
330
-
/// if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance.
331
-
///
332
-
/// Note on Classes that inherit from DynamicObj:
333
-
///
334
-
/// Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement ICloneable.
335
-
/// The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties.
/// - `ResizeArrays` and `Dictionaries` containing any combination of basic F# types
322
+
///
323
+
/// - `Dictionaries` containing `DynamicObj` as keys or values in any combination with `DynamicObj` or basic F# types as keys or values
324
+
///
325
+
/// - `array<DynamicObj>`, `list<DynamicObj>`, `ResizeArray<DynamicObj>`: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.
326
+
///
327
+
/// - `System.ICloneable`: If the property implements `ICloneable`, the `Clone()` method is called on the property.
328
+
///
329
+
/// - `DynamicObj` (and derived classes): properties that are themselves `DynamicObj` instances are deep copied recursively.
330
+
/// if a derived class has static properties (e.g. instance properties), these can be copied as dynamic properties on the new instance or ignored.
331
+
///
332
+
/// Note on Classes that inherit from `DynamicObj`:
333
+
///
334
+
/// Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement `ICloneable`.
335
+
/// The deep copied instances will be cast to `DynamicObj` with deep copied dynamic properties. Staic/instance properties can be copied as dynamic properties on the new instance or be ignored.
336
336
/// It should be possible to 'recover' the original type by checking if the needed properties exist as dynamic properties,
337
337
/// and then passing them to the class constructor if needed.
338
338
/// </summary>
@@ -407,23 +407,23 @@ and CopyUtils =
407
407
408
408
/// The following cases are handled (in this precedence):
/// - ResizeArrays and Dictionaries containing any combination of basic F# types
413
-
///
414
-
/// - Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values
415
-
///
416
-
/// - array<DynamicObj>, list<DynamicObj>, ResizeArray<DynamicObj>: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.
417
-
///
418
-
/// - System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.
419
-
///
420
-
/// - DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively.
421
-
/// if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance.
422
-
///
423
-
/// Note on Classes that inherit from DynamicObj:
424
-
///
425
-
/// Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement ICloneable.
426
-
/// The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties.
/// - `ResizeArrays` and `Dictionaries` containing any combination of basic F# types
413
+
///
414
+
/// - `Dictionaries` containing `DynamicObj` as keys or values in any combination with `DynamicObj` or basic F# types as keys or values
415
+
///
416
+
/// - `array<DynamicObj>`, `list<DynamicObj>`, `ResizeArray<DynamicObj>`: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.
417
+
///
418
+
/// - `System.ICloneable`: If the property implements `ICloneable`, the `Clone()` method is called on the property.
419
+
///
420
+
/// - `DynamicObj` (and derived classes): properties that are themselves `DynamicObj` instances are deep copied recursively.
421
+
/// if a derived class has static properties (e.g. instance properties), these can be copied as dynamic properties on the new instance or ignored.
422
+
///
423
+
/// Note on Classes that inherit from `DynamicObj`:
424
+
///
425
+
/// Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement `ICloneable`.
426
+
/// The deep copied instances will be cast to `DynamicObj` with deep copied dynamic properties. Staic/instance properties can be copied as dynamic properties on the new instance or be ignored.
427
427
/// It should be possible to 'recover' the original type by checking if the needed properties exist as dynamic properties,
428
428
/// and then passing them to the class constructor if needed.
0 commit comments