Exemplo n.º 1
0
        private static void WriteObject(WriterState writer, object val)
        {
            writer.Write((byte)SerializedType.Object);

            foreach (var getter in GetterHandler.GetGetterHandlers(val.GetType()))
            {
                getter.Handle(writer, val);
            }

            writer.Write((byte)EnumerableType.End);
        }
Exemplo n.º 2
0
        private static void WriteObject <T>(WriterState writer, T val)
        {
            var type = val.GetType();

            if (writer.CustomObjectIdentifierProviders == null || !writer.CustomObjectIdentifierProviders.TryGetValue(typeof(T), out var customObjectIdentifierProvider))
            {
                writer.Write((byte)SerializedType.Object);
            }
            else
            {
                writer.Write((byte)SerializedType.CustomObject);
                WriteValue(writer, customObjectIdentifierProvider.GetIdentifier(type));
            }

            var getters = type == typeof(T) ? GetterHandler.GetterHandlers <T> .Getters : GetterHandler.GetGetterHandlers(type);

            foreach (var getter in getters)
            {
                getter.Handle(writer, val);
            }

            writer.Write((byte)EnumerableType.End);
        }