public SerializationContext(ContextMode contextMode, [NotNull] IStreamSource streamSource, SerializerMode serializerMode)
 {
     ContextMode = contextMode;
     StreamSource = streamSource;
     SerializerMode = serializerMode;
     _backgroundStream = new BackgroundStream();
 }
Ejemplo n.º 2
0
 private SerializationContext(ContextMode contextMode, IStreamSource streamSource, SerializerMode serializerMode, BackgroundStream parentStream)
 {
     ContextMode       = contextMode;
     StreamSource      = Argument.NotNull(streamSource, nameof(streamSource));
     SerializerMode    = Argument.NotNull(serializerMode, nameof(serializerMode));
     _backgroundStream = Argument.NotNull(parentStream, nameof(parentStream));
 }
Ejemplo n.º 3
0
 public SerializationContext(ContextMode contextMode, IStreamSource streamSource, SerializerMode serializerMode)
 {
     ContextMode       = contextMode;
     StreamSource      = Argument.NotNull(streamSource, nameof(streamSource));
     SerializerMode    = Argument.NotNull(serializerMode, nameof(serializerMode));
     _backgroundStream = new BackgroundStream();
 }
 private SerializationContext(ContextMode contextMode, [NotNull] IStreamSource streamSource,
                              SerializerMode serializerMode, [NotNull] BackgroundStream parentStream)
 {
     ContextMode = contextMode;
     StreamSource = streamSource;
     SerializerMode = serializerMode;
     _backgroundStream = parentStream;
 }
        private void DisposeImpl(bool disposing)
        {
            if (disposing && _childContexts != null)
            {
                StreamSource.Dispose();

                foreach (var serializationContext in _childContexts)
                {
                    serializationContext.Value.Dispose();
                }
            }

            if (_backgroundStream != null && _backgroundStream.Stream != null)
            {
                _backgroundStream.Stream.Dispose();
            }

            _backgroundStream = null;

            if (_binaryWriter != null)
            {
                _binaryWriter.Dispose();
                _binaryWriter = null;
            }
            if (_binaryReader != null)
            {
                _binaryReader.Dispose();
                _binaryReader = null;
            }
            if (_textReader != null)
            {
                _textReader.Dispose();
                _textReader = null;
            }

            if (_textWriter == null) return;
            _textWriter.Dispose();
            _textWriter = null;
        }