Extension methods for dynamically-typed (polymorphic) synchronization. By default these use the ambient services TypeSyncRegistry.Default and TypeTagRegistry.Default; overloads that accept registry instances bypass the ambient services. See TypeSyncRegistry, TypeTagRegistry and TypeTagAttribute to learn how dynamic typing works.
|
| static T | SyncDyn< SM, T > (this SM sync, FieldId name, T?savable, ObjectMode mode=ObjectMode.Deduplicate) |
| | Reads/writes a field whose runtime type may differ from its static type T, using the synchronizers and type tags registered in the ambient services (TypeSyncRegistry.Default and TypeTagRegistry.Default). More...
|
| |
| static T | SyncDyn< SM, T > (this SM sync, FieldId name, T?savable, TypeSyncRegistry synchronizers, TypeTagRegistry?tags=null, ObjectMode mode=ObjectMode.Deduplicate) |
| | Reads/writes a dynamically-typed field using specific registry instances rather than the ambient ones. When tags is null, TypeTagRegistry.Default is used for tags. More...
|
| |
|
static List< T > | SyncDynList< SM, T > (this SM sync, FieldId name, List< T >?savable, ObjectMode itemMode=ObjectMode.Deduplicate, ObjectMode listMode=ObjectMode.List, int tupleLength=-1) |
| |
|
static T[] | SyncDynList< SM, T > (this SM sync, FieldId name, T[]?savable, ObjectMode itemMode=ObjectMode.Deduplicate, ObjectMode listMode=ObjectMode.List, int tupleLength=-1) |
| |
|
static IList< T > | SyncDynList< SM, T > (this SM sync, FieldId name, IList< T >?savable, ObjectMode itemMode=ObjectMode.Deduplicate, ObjectMode listMode=ObjectMode.List, int tupleLength=-1) |
| |
|
static List< T > | SyncDynList< SM, T > (this SM sync, FieldId name, List< T >?savable, TypeSyncRegistry synchronizers, TypeTagRegistry?tags=null, ObjectMode itemMode=ObjectMode.Deduplicate, ObjectMode listMode=ObjectMode.List, int tupleLength=-1) |
| |
| static T | SyncAny< SM, T > (this SM sync, FieldId name, T savable) |
| | Reads/writes a field of any type for which a synchronizer is known: either a built-in one (primitives, strings, tuples, arrays, common collections, DateTime/TimeSpan, enums) or one registered in TypeSyncRegistry.Default (in which case this behaves like SyncDyn{SM, T}(SM, FieldId, T, ObjectMode)). Note: primitive types don't reach this extension method because ISyncManager's instance methods take precedence in overload resolution. More...
|
| |
| static T SyncDynamicExt.SyncAny< SM, T > |
( |
this SM |
sync, |
|
|
FieldId |
name, |
|
|
T |
savable |
|
) |
| |
|
static |
Reads/writes a field of any type for which a synchronizer is known: either a built-in one (primitives, strings, tuples, arrays, common collections, DateTime/TimeSpan, enums) or one registered in TypeSyncRegistry.Default (in which case this behaves like SyncDyn{SM, T}(SM, FieldId, T, ObjectMode)). Note: primitive types don't reach this extension method because ISyncManager's instance methods take precedence in overload resolution.
- Type Constraints
-
| SM | : | ISyncManager | |
| SM | : | DefaultSynchronizer.Sync | |
| SM | : | ref | |
| SM | : | sync | |
| SM | : | name | |
| SM | : | savable | |