internal SerializationFormatter( Parameters parameters) { this.l3typeManagerCollection = new L3TypeManagerCollection(parameters.customModifiers); #region For Serializer.cs #if !DEBUG var f2 = (delAddAllStructs<int>)(addAllStructs<int>); this.gfAddAllStructs = f2.Method.GetGenericMethodDefinition(); #endif #endregion For Serializer.cs if (this.IsStringFormatter && parameters.Stream != null) this.streamWriter = new StreamWriter(parameters.Stream, Encoding.UTF8); else this.binaryWriter = new FileTools.BinaryWriter2(parameters.Stream, Encoding.UTF8); parameters.TheStreamingMode = (parameters.StreamingMode != null) ? parameters.StreamingMode.Value : (parameters.setOfStreams != null ? StreamingModes.SetOfStreams : (this.CanManageMultiplexStreams ? StreamingModes.MultiplexStream : StreamingModes.AssembledStream)); this.parameters = parameters; { bool UseMemoryStreams = this.parameters.TheStreamingMode == StreamingModes.AssembledStream; if (parameters.SerializeTypeDescriptors) this.channelInfos[(int)ChannelNumber.TypeDescriptorsChannel] = new ChannelInfos( this, parameters.setOfStreams != null ? parameters.setOfStreams.TypesStream : UseMemoryStreams ? new MemoryStream() : parameters.Stream #if DEBUG , "Types branch" #endif , ChannelNumber.TypeDescriptorsChannel ); this.channelInfos[(int)ChannelNumber.InstancesChannel] = new ChannelInfos( this, parameters.setOfStreams != null ? parameters.setOfStreams.InstancesStream : UseMemoryStreams ? new MemoryStream() : parameters.Stream #if DEBUG , "Instances branch" #endif , ChannelNumber.InstancesChannel ); } }
internal readonly FileTools.BinaryWriter2 binaryWriter; // the one of the Formatter when multiplexed. internal ChannelInfos( SerializationFormatter Formatter, Stream stream, #if DEBUG string NameForDebugging, #endif ChannelNumber ChannelNumber ) { this.stream = stream; #if DEBUG this.NameForDebugging = NameForDebugging; #endif this.ChannelNumber = ChannelNumber; this.streamWriterForText = Formatter.IsStringFormatter ? (Formatter.parameters.TheStreamingMode == StreamingModes.SetOfStreams ? new StreamWriter(stream) : Formatter.streamWriter) : null; this.binaryWriter = !Formatter.IsStringFormatter ? (Formatter.parameters.TheStreamingMode == StreamingModes.SetOfStreams ? new FileTools.BinaryWriter2(stream, Encoding.UTF8) : Formatter.binaryWriter) : null; }