Enhanced C#
Loyc library documentation
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties Events Pages
Static Public Member Functions | List of all members
SyncDynamicExt Class Reference

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. More...


Source file:

Remarks

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 Public Member Functions

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...
 

Member Function Documentation

static T SyncDynamicExt.SyncAny< SM, T > ( this SM  sync,
FieldId  name,
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 
static T SyncDynamicExt.SyncDyn< SM, T > ( this SM  sync,
FieldId  name,
T?  savable,
ObjectMode  mode = ObjectMode.Deduplicate 
)
static

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).

Type Constraints
SM :ISyncManager 
SM :new 
SM :DynamicSync 
SM :SM 
SM :T 
SM :mode 
SM :Sync 
SM :ref 
SM :sync 
SM :name 
SM :savable 
static T SyncDynamicExt.SyncDyn< SM, T > ( this SM  sync,
FieldId  name,
T?  savable,
TypeSyncRegistry  synchronizers,
TypeTagRegistry tags = null,
ObjectMode  mode = ObjectMode.Deduplicate 
)
static

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.

Type Constraints
SM :ISyncManager 
SM :new 
SM :DynamicSync 
SM :SM 
SM :T 
SM :synchronizers 
SM :tags 
SM :mode 
SM :Sync 
SM :ref 
SM :sync 
SM :name 
SM :savable