Show / Hide Table of Contents

Namespace Eco.Core.Serialization.Migrations

Classes

AggregateMigration

Migration which aggregates multiple migrations into one. Migrations applied after each other for every compatible type.

AggregateMigrationExtensions

ArrayEntriesMigration

Array migration which applies migration to every element and modifies collection schema type if required. May be supplied with optional filter for migrated entries.

ClassMigrationBase

ClassMigrationExtensions

ClassRemoveMigration

Migration for a removed class which allows to invoke Eco.Core.Serialization.Migrations.ClassRemoveMigration.onRemove callback for removed instances members data.

ClassRenameMigration

ClassToFieldMigration

ClassToValueMigration<TValue>

CollectionEntriesMigration

Abstract collection migration (i.e. array or list).

ConcreteTypeMigration

Migration from base type to multiple concrete types based on object's field values. If you need to migrate only by single field you can use simplified ConcreteTypeMigration<TDiscriminator>.

ConcreteTypeMigration<TDiscriminator>

Migration from base type to multiple concrete types by single (discriminator) field value.

ConvertToReferenceMigration

DataMigration

Data migration class performs data level modifications (change member type, migrate member, update member, rename member, delete member etc).

DictionaryDataMigration

Migration for both key and value. Original key and value may be accessed with KeyInput and ValueInput. It let you manipulate with Dictionary data at binary level similar way as DataMigration works. With data inputs for key and value you can access serialized data in binary form and use it for key and value generation. Migration itself doesn't define default modifications, but instead modifications should be added with methods like AddKeyTransform(Func<IDictionary<IDataInput, ReaderDataInput>, ReaderDataInput>).

DictionaryExtendMigration

Migration extending dictionary with new items. Items should be generated with provided function.

DictionaryKeyMigration<TOldKey, TNewKey>

Migrates all dictionary keys to new key values using Eco.Core.Serialization.Migrations.DictionaryKeyMigration`2.converter.

DummyMigration

This migration may be used if you don't actually want to do any migration logic, but want to include this type in migration chain (to process attributes etc).

EnumerableEntriesMigration

Enumerable collection migration which applies migration to every element and modifies collection schema type if required. May be supplied with optional filter for migrated entries.

ImmutableSerializerSchema

InstanceMigration

Base class for instance migrations. This kind of migration doesn't care about class headers, but only migrates instance content (fields, properties etc). ClassMigrationBase takes are about nullability flags and other meta info. It also constructs serialized header from output schema.

KeyToReferenceMigration<TKey, TReference>

Migrates a key to reference which have to be resolved by the key using Eco.Core.Serialization.Migrations.KeyToReferenceMigration`2.referenceResolver.

MappedReferenceMigration<T>

Migration for mapping from reference ID to object with Eco.Core.Serialization.Migrations.MappedReferenceMigration`1.mapper instead of standard reference resolve logic.

MemberRenameMigration

MemberTypeChangeMigration

MigrationCollection

Collection of migrations. Unlike AggregateMigration these migrations are unordered and may be applied independently.

MigrationContext

MigrationException

MigrationManager

Class responsible for migration stuff. It holds migrations, migration types for different versions and can apply them.

MigrationType

Contains information about new type added during migration. Without this info it won't be possible to encode the type.

ObjectInstanceMigration<TSrc, TDst>

Used to migrate object instance of compatible type (specified in constructor) to instance of same or another type. It may not produce null value as result and also may not produce value type. May be used as root level migration.

ObjectMigration<TSrc, TDst>

Used to migrate object instance to other object instance. It may not be used as auto root-level migration, but can be used explicitly as member migration or collection entry migration. It allows to migrate object to null or to value type (opposite to ObjectInstanceMigration<TSrc, TDst>).

ReferenceCollectionToDictionaryMigration

Used to migrate a collection of references into a dictionary, with ID as key ('null' entries are skipped).

SchemaUtils

ValueToClassMigration

Migrates value to class with one of it's field filled with the value. Useful when required migration from value to class wrapping the value and extending it with additional info.

ValueToCollectionMigration

Migrates value to collection with single element. Useful when required migration from former one element to collection of such elements.

Interfaces

IClassMigration

Base interface for all class migrations. Shouldn't be used directly, instead use IInstanceMigration or IReferenceMigration or both.

IDataStoreMigration

IInstanceMigration

IMigration

Base migration class.

IPostLoadMigration

Migration which performs some actions OnPostLoad(). Call to OnPostLoad() adds to PostLoadMethods if migration version higher than save version.

IReferenceMigration

Interface for object References migrations. I.e. for ClassRenameMigration you need it to change reference type.

ITypeMigration

Migration may implement the interface if it supports type migration (i.e. when type renamed).

☀
☾
In This Article
Back to top
Copyright (c) Strange Loop Games 2021
☀
☾