Show / Hide Table of Contents

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

Inheritance
System.Object
DictionaryMigration
DictionaryEntriesMigration
DictionaryDataMigration
Implements
IMigration
Inherited Members
DictionaryEntriesMigration.Migrate(MigrationContext)
DictionaryMigration.keySchemaType
DictionaryMigration.valueSchemaType
DictionaryMigration.newSchemaType
DictionaryMigration.keySerializer
DictionaryMigration.valueSerializer
DictionaryMigration.migrationManager
Namespace: Eco.Core.Serialization.Migrations
Assembly: Eco.Core.dll
Syntax
public class DictionaryDataMigration : DictionaryEntriesMigration, IMigration

Constructors

DictionaryDataMigration(String, String)

Declaration
public DictionaryDataMigration(string keySchemaType, string valueSchemaType)
Parameters
Type Name Description
System.String keySchemaType
System.String valueSchemaType

DictionaryDataMigration(String, String, String)

Declaration
public DictionaryDataMigration(string keySchemaType, string valueSchemaType, string newSchemaType)
Parameters
Type Name Description
System.String keySchemaType
System.String valueSchemaType
System.String newSchemaType

Properties

KeyInput

Declaration
public DataInput KeyInput { get; }
Property Value
Type Description
DataInput

ValueInput

Declaration
public DataInput ValueInput { get; }
Property Value
Type Description
DataInput

Methods

AddKeyTransform(Func<IDictionary<IDataInput, ReaderDataInput>, ReaderDataInput>)

Adds key transform modification. keyTransform converts data input for a key to new key data input. DataInputs provided as second argument and may be used for accessing other registered data inputs.

var dm = new DataMigration(typeof(BankAccount));
var holdingsMigration = new DictionaryDataMigration("int", SchemaUtils.GetSchemaType(typeof(Currency)));
var serializedId      = holdingsMigration.ValueInput.Member("Currency").Member("SerializedID");
holdingsMigration.AddKeyTransform(inputs => inputs[serializedId]);
dm.MigrateMember(nameof(BankAccount.CurrencyHoldings), holdingsMigration);

Declaration
public void AddKeyTransform(Func<IDictionary<IDataInput, ReaderDataInput>, ReaderDataInput> keyTransform)
Parameters
Type Name Description
System.Func<System.Collections.Generic.IDictionary<IDataInput, ReaderDataInput>, ReaderDataInput> keyTransform

Initialize(MigrationManager)

Declaration
public override void Initialize(MigrationManager manager)
Parameters
Type Name Description
MigrationManager manager
Overrides
DictionaryMigration.Initialize(MigrationManager)

MigrateEntries(Int32, MigrationContext, BinaryWriter)

Migrates Dictionary entries. Number of entries provided as count. Migrated content written to writer.

Declaration
protected override int MigrateEntries(int count, MigrationContext context, BinaryWriter writer)
Parameters
Type Name Description
System.Int32 count
MigrationContext context
System.IO.BinaryWriter writer
Returns
Type Description
System.Int32
Overrides
DictionaryEntriesMigration.MigrateEntries(Int32, MigrationContext, BinaryWriter)

Implements

IMigration

Extension Methods

PropertyChanges.FirePropertyChanged(Object, String)
PropertyChanges.FirePropertyChanged(Object, String, Object, Object)
PropertyChanges.FirePropertyChanged(Object, MemberChangedBeforeAfterEventArgs)
☀
☾
In This Article
Back to top
Copyright (c) Strange Loop Games 2021
☀
☾