Stride

OPEN / CLOSE
  • Features
  • Blog
  • Documentation
  • Community
(icon) Download

  • Discord
  • Facebook
  • Twitter
  • YouTube

LANGUAGE

OPEN / CLOSE
  • English
  • 日本語
    Show / Hide Table of Contents

    CollectionWithIdsSerializerBase Class

    Namespace: Stride.Core.Yaml
    Assembly: Stride.Core.Assets.dll

    A base class to serialize collections with unique identifiers for each item.

    System.Object → Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer → Stride.Core.Yaml.Serialization.Serializers.DictionarySerializer → CollectionWithIdsSerializerBase
    Derived from CollectionWithIdsSerializerBase: CollectionWithIdsSerializer DictionaryWithIdsSerializer

    [YamlSerializerFactory(new string[]{"Assets"})]
    public abstract class CollectionWithIdsSerializerBase : DictionarySerializer, IYamlSerializable, IYamlSerializableFactory
    Name Description
    Fields
    DeletedItemsKey

    A key that identifies deleted items during deserialization.

    InstanceInfoKey

    A key that identifies the information about the instance that we need the store in the Stride.Core.Yaml.Serialization.ObjectContext.Properties dictionary.

    NonIdentifiableCollectionItemsKey

    A property key to indicate whether a collection has non-identifiable items

    YamlDeletedKey

    A string token to identify deleted items in a collection.

    Methods
    AreCollectionItemsIdentifiable(ref ObjectContext)
    CheckIsSequence(ref ObjectContext)
    CreatEmptyContainer(ITypeDescriptor)

    Creates an empty dictionary that can store the mapping of ids to items of the collection.

    CreateOrTransformObject(ref ObjectContext)
    ReadDeletedDictionaryItem(ref ObjectContext, Object)
    ReadDictionaryItem(ref ObjectContext, KeyValuePair<Type, Type>)
    ReadDictionaryItems(ref ObjectContext)

    Reads the dictionary items key-values.

    ReadYaml(ref ObjectContext)
    ReadYamlAfterTransform(ref ObjectContext, Boolean)
    TransformAfterDeserialization(IDictionary, ITypeDescriptor, Object, ICollection<ItemId>)

    Transforms a dictionary containing the mapping of ids to items into the actual collection, and store the ids in the Stride.Core.Reflection.ShadowObject.

    TransformForSerialization(ITypeDescriptor, Object)
    WriteDeletedItems(ref ObjectContext)
    WriteDictionaryItems(ref ObjectContext)
    WriteYaml(ref ObjectContext)
    WriteYamlAfterTransform(ref ObjectContext, Boolean)
    | Improve this Doc View Source

    Fields


    DeletedItemsKey

    A key that identifies deleted items during deserialization.

    protected static readonly PropertyKey<ICollection<ItemId>> DeletedItemsKey
    Field Value
    Type Description
    PropertyKey<System.Collections.Generic.ICollection<ItemId>>

    InstanceInfoKey

    A key that identifies the information about the instance that we need the store in the Stride.Core.Yaml.Serialization.ObjectContext.Properties dictionary.

    protected static readonly PropertyKey<CollectionWithIdsSerializerBase.InstanceInfo> InstanceInfoKey
    Field Value
    Type Description
    PropertyKey<CollectionWithIdsSerializerBase.InstanceInfo>

    NonIdentifiableCollectionItemsKey

    A property key to indicate whether a collection has non-identifiable items

    public static readonly PropertyKey<bool> NonIdentifiableCollectionItemsKey
    Field Value
    Type Description
    PropertyKey<System.Boolean>

    YamlDeletedKey

    A string token to identify deleted items in a collection.

    public const string YamlDeletedKey = "~(Deleted)"
    Field Value
    Type Description
    System.String
    | Improve this Doc View Source

    Methods


    AreCollectionItemsIdentifiable(ref ObjectContext)

    protected static bool AreCollectionItemsIdentifiable(ref ObjectContext objectContext)
    Parameters
    Type Name Description
    Stride.Core.Yaml.Serialization.ObjectContext objectContext
    Returns
    Type Description
    System.Boolean

    CheckIsSequence(ref ObjectContext)

    protected override bool CheckIsSequence(ref ObjectContext objectContext)
    Parameters
    Type Name Description
    Stride.Core.Yaml.Serialization.ObjectContext objectContext
    Returns
    Type Description
    System.Boolean
    Overrides
    Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer.CheckIsSequence(Stride.Core.Yaml.Serialization.ObjectContext)

    CreatEmptyContainer(ITypeDescriptor)

    Creates an empty dictionary that can store the mapping of ids to items of the collection.

    protected abstract IDictionary CreatEmptyContainer(ITypeDescriptor descriptor)
    Parameters
    Type Name Description
    Stride.Core.Reflection.ITypeDescriptor descriptor

    The type descriptor of the collection for which to create the dictionary.

    Returns
    Type Description
    System.Collections.IDictionary

    An empty dictionary for mapping ids to elements.


    CreateOrTransformObject(ref ObjectContext)

    protected override void CreateOrTransformObject(ref ObjectContext objectContext)
    Parameters
    Type Name Description
    Stride.Core.Yaml.Serialization.ObjectContext objectContext
    Overrides
    Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer.CreateOrTransformObject(Stride.Core.Yaml.Serialization.ObjectContext)

    ReadDeletedDictionaryItem(ref ObjectContext, Object)

    protected abstract KeyValuePair<object, object> ReadDeletedDictionaryItem(ref ObjectContext objectContext, object keyResult)
    Parameters
    Type Name Description
    Stride.Core.Yaml.Serialization.ObjectContext objectContext
    System.Object keyResult
    Returns
    Type Description
    System.Collections.Generic.KeyValuePair<System.Object, System.Object>

    ReadDictionaryItem(ref ObjectContext, KeyValuePair<Type, Type>)

    protected override KeyValuePair<object, object> ReadDictionaryItem(ref ObjectContext objectContext, KeyValuePair<Type, Type> keyValueTypes)
    Parameters
    Type Name Description
    Stride.Core.Yaml.Serialization.ObjectContext objectContext
    System.Collections.Generic.KeyValuePair<System.Type, System.Type> keyValueTypes
    Returns
    Type Description
    System.Collections.Generic.KeyValuePair<System.Object, System.Object>
    Overrides
    Stride.Core.Yaml.Serialization.Serializers.DictionarySerializer.ReadDictionaryItem(Stride.Core.Yaml.Serialization.ObjectContext, System.Collections.Generic.KeyValuePair<System.Type, System.Type>)

    ReadDictionaryItems(ref ObjectContext)

    Reads the dictionary items key-values.

    protected override void ReadDictionaryItems(ref ObjectContext objectContext)
    Parameters
    Type Name Description
    Stride.Core.Yaml.Serialization.ObjectContext objectContext
    Overrides
    Stride.Core.Yaml.Serialization.Serializers.DictionarySerializer.ReadDictionaryItems(Stride.Core.Yaml.Serialization.ObjectContext)

    ReadYaml(ref ObjectContext)

    public override object ReadYaml(ref ObjectContext objectContext)
    Parameters
    Type Name Description
    Stride.Core.Yaml.Serialization.ObjectContext objectContext
    Returns
    Type Description
    System.Object
    Overrides
    Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer.ReadYaml(Stride.Core.Yaml.Serialization.ObjectContext)

    ReadYamlAfterTransform(ref ObjectContext, Boolean)

    protected virtual void ReadYamlAfterTransform(ref ObjectContext objectContext, bool transformed)
    Parameters
    Type Name Description
    Stride.Core.Yaml.Serialization.ObjectContext objectContext
    System.Boolean transformed

    TransformAfterDeserialization(IDictionary, ITypeDescriptor, Object, ICollection<ItemId>)

    Transforms a dictionary containing the mapping of ids to items into the actual collection, and store the ids in the Stride.Core.Reflection.ShadowObject.

    protected abstract void TransformAfterDeserialization(IDictionary container, ITypeDescriptor targetDescriptor, object targetCollection, ICollection<ItemId> deletedItems = null)
    Parameters
    Type Name Description
    System.Collections.IDictionary container

    The dictionary mapping ids to item.

    Stride.Core.Reflection.ITypeDescriptor targetDescriptor

    The type descriptor of the actual collection to fill.

    System.Object targetCollection

    The instance of the actual collection to fill.

    System.Collections.Generic.ICollection<ItemId> deletedItems

    A collection of items that are marked as deleted. Can be null.


    TransformForSerialization(ITypeDescriptor, Object)

    protected abstract object TransformForSerialization(ITypeDescriptor descriptor, object collection)
    Parameters
    Type Name Description
    Stride.Core.Reflection.ITypeDescriptor descriptor
    System.Object collection
    Returns
    Type Description
    System.Object

    WriteDeletedItems(ref ObjectContext)

    protected abstract void WriteDeletedItems(ref ObjectContext objectContext)
    Parameters
    Type Name Description
    Stride.Core.Yaml.Serialization.ObjectContext objectContext

    WriteDictionaryItems(ref ObjectContext)

    protected override void WriteDictionaryItems(ref ObjectContext objectContext)
    Parameters
    Type Name Description
    Stride.Core.Yaml.Serialization.ObjectContext objectContext
    Overrides
    Stride.Core.Yaml.Serialization.Serializers.DictionarySerializer.WriteDictionaryItems(Stride.Core.Yaml.Serialization.ObjectContext)

    WriteYaml(ref ObjectContext)

    public override void WriteYaml(ref ObjectContext objectContext)
    Parameters
    Type Name Description
    Stride.Core.Yaml.Serialization.ObjectContext objectContext
    Overrides
    Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer.WriteYaml(Stride.Core.Yaml.Serialization.ObjectContext)

    WriteYamlAfterTransform(ref ObjectContext, Boolean)

    protected virtual void WriteYamlAfterTransform(ref ObjectContext objectContext, bool transformed)
    Parameters
    Type Name Description
    Stride.Core.Yaml.Serialization.ObjectContext objectContext
    System.Boolean transformed

    Inherited Members

    Stride.Core.Yaml.Serialization.Serializers.DictionarySerializer.TryCreate(Stride.Core.Yaml.Serialization.SerializerContext, Stride.Core.Reflection.ITypeDescriptor)
    Stride.Core.Yaml.Serialization.Serializers.DictionarySerializer.ReadMember(Stride.Core.Yaml.Serialization.ObjectContext)
    Stride.Core.Yaml.Serialization.Serializers.DictionarySerializer.WriteMembers(Stride.Core.Yaml.Serialization.ObjectContext)
    Stride.Core.Yaml.Serialization.Serializers.DictionarySerializer.WriteDictionaryItem(Stride.Core.Yaml.Serialization.ObjectContext, System.Collections.Generic.KeyValuePair<System.Object, System.Object>, System.Collections.Generic.KeyValuePair<System.Type, System.Type>)
    Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer.GetStyle(Stride.Core.Yaml.Serialization.ObjectContext)
    Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer.TransformObjectAfterRead(Stride.Core.Yaml.Serialization.ObjectContext)
    Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer.ReadMembers<TStart, TEnd>(Stride.Core.Yaml.Serialization.ObjectContext)
    Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer.TryReadMember(Stride.Core.Yaml.Serialization.ObjectContext, System.String)
    Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer.TryReadMember(Stride.Core.Yaml.Serialization.ObjectContext, Stride.Core.Yaml.Events.Scalar, System.String)
    Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer.ReadMemberName(Stride.Core.Yaml.Serialization.ObjectContext, System.String, System.Boolean)
    Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer.ReadMemberValue(Stride.Core.Yaml.Serialization.ObjectContext, Stride.Core.Reflection.IMemberDescriptor, System.Object, System.Type)
    Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer.WriteMember(Stride.Core.Yaml.Serialization.ObjectContext, Stride.Core.Reflection.IMemberDescriptor)
    Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer.WriteMemberName(Stride.Core.Yaml.Serialization.ObjectContext, Stride.Core.Reflection.IMemberDescriptor, System.String)
    Stride.Core.Yaml.Serialization.Serializers.ObjectSerializer.WriteMemberValue(Stride.Core.Yaml.Serialization.ObjectContext, Stride.Core.Reflection.IMemberDescriptor, System.Object, System.Type)

    Extension Methods

    ComponentBaseExtensions.DisposeBy<T>(T, ICollectorHolder)
    ComponentBaseExtensions.RemoveDisposeBy<T>(T, ICollectorHolder)
    • Improve this Doc
    • View Source
    In This Article

    Back to top

    Copyright © 2019-2021 .NET Foundation and Contributors
    Supported by the .NET Foundation