Beispiel #1
0
        /// <summary>
        /// Serializes a object fields to a stream
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="stream"></param>
        /// <param name="bufferSize">buffer size used to copy to the stream</param>
        /// <returns>false if type is not serializable</returns>
        public static bool Serialize(object obj, Stream stream, int bufferSize = 4096 * 2)
        {
            if (obj == null)
            {
                throw new ArgumentNullException(nameof(obj));
            }
            if (stream == null)
            {
                throw new ArgumentNullException(nameof(stream));
            }

            var output    = new SerializerOutput(bufferSize, stream);
            var serialize = _uSerializer.Serialize(output, obj);

            output.Flush();

            return(serialize);
        }
Beispiel #2
0
        public USerializerBenchmark()
        {
            var consoleLogger = new ConsoleLogger();

            var serializationProviders = ProvidersUtils.GetDefaultProviders(consoleLogger);

            _uSerializer = new USerializer(new UnitySerializationPolicy(), serializationProviders,
                                           new DataTypesDatabase(), consoleLogger);

            _output = new SerializerOutput(2048 * 10);
            _input  = new SerializerInput(2048 * 10);

            _uSerializer.PreCacheType(typeof(T));

            if (_uSerializer.TryGetDataSerializer(typeof(T), out var dataSerializer))
            {
                _serializer = dataSerializer.GetTyped <T>();
            }
            else
            {
                throw new Exception($"Cannot serialize {typeof(T)}");
            }
        }