Ejemplo n.º 1
0
 internal BinarySerializationContext(BinaryPropertyWriter visitor, BinaryAdapterCollection.Enumerator adapters, TValue value, bool isRoot)
 {
     m_Visitor  = visitor;
     m_Adapters = adapters;
     m_Value    = value;
     m_IsRoot   = isRoot;
 }
        internal void ReadValueWithAdapters <TValue>(ref TValue value, BinaryAdapterCollection.Enumerator adapters, bool isRoot)
        {
            while (adapters.MoveNext())
            {
                switch (adapters.Current)
                {
                case IBinaryAdapter <TValue> typed:
                    value = typed.Deserialize(new BinaryDeserializationContext <TValue>(this, adapters, isRoot));
                    return;

                case Adapters.Contravariant.IBinaryAdapter <TValue> typedContravariant:
                    // NOTE: Boxing
                    value = (TValue)typedContravariant.Deserialize((IBinaryDeserializationContext) new BinaryDeserializationContext <TValue>(this, adapters, isRoot));
                    return;
                }
            }

            ReadValueWithoutAdapters(ref value, isRoot);
        }
Ejemplo n.º 3
0
        internal void WriteValueWithAdapters <TValue>(TValue value, BinaryAdapterCollection.Enumerator adapters, bool isRoot)
        {
            while (adapters.MoveNext())
            {
                switch (adapters.Current)
                {
                case IBinaryAdapter <TValue> typed:
                    typed.Serialize(new BinarySerializationContext <TValue>(this, adapters, value, isRoot), value);
                    return;

                case Adapters.Contravariant.IBinaryAdapter <TValue> typedContravariant:
                    // NOTE: Boxing
                    typedContravariant.Serialize((IBinarySerializationContext) new BinarySerializationContext <TValue>(this, adapters, value, isRoot), value);
                    return;
                }
            }

            // Do the default thing.
            WriteValueWithoutAdapters(value, isRoot);
        }
Ejemplo n.º 4
0
 internal BinaryDeserializationContext(BinaryPropertyReader visitor, BinaryAdapterCollection.Enumerator adapters, bool isRoot)
 {
     m_Visitor  = visitor;
     m_Adapters = adapters;
     m_IsRoot   = isRoot;
 }