internal DynamicBoundConfiguration( char valueSeparator, char escapedValueStartAndStop, char escapeValueEscapeChar, RowEndings rowEndings, ReadHeaders readHeader, WriteHeaders writeHeaders, WriteTrailingNewLines writeTrailingNewLine, MemoryPool <char> memoryPool, char?commentChar, int?writeBufferSizeHint, int readBufferSizeHint, IDynamicTypeConverter dynamicTypeConverter, DynamicRowDisposal dynamicRowDisposal ) : base( valueSeparator, escapedValueStartAndStop, escapeValueEscapeChar, rowEndings, readHeader, writeHeaders, writeTrailingNewLine, memoryPool, commentChar, writeBufferSizeHint, readBufferSizeHint, dynamicTypeConverter, dynamicRowDisposal ) { }
/// <summary> /// Set the ITypeDescriber used to discover and configure the /// columns that are read and written. /// </summary> public OptionsBuilder WithDynamicTypeConverter(IDynamicTypeConverter converter) { converter = converter ?? DynamicTypeConverters.Default; DynamicTypeConverter = converter; return(this); }
/// <summary> /// For working with concrete types. /// </summary> protected BoundConfigurationBase( InstanceBuilderDelegate <T> newCons, Column[] deserializeColumns, Column[] serializeColumns, bool[] serializeColumnsNeedEscape, char valueSeparator, char escapedValueStartAndStop, char escapeValueEscapeChar, RowEndings rowEndings, ReadHeaders readHeader, WriteHeaders writeHeaders, WriteTrailingNewLines writeTrailingNewLine, MemoryPool <char> memoryPool, char?commentChar, int?writeBufferSizeHint, int readBufferSizeHint ) { NewCons = newCons; DeserializeColumns = deserializeColumns; SerializeColumns = serializeColumns; SerializeColumnsNeedEscape = serializeColumnsNeedEscape; ValueSeparator = valueSeparator; ValueSeparatorMemory = ValueSeparator.ToString().AsMemory(); EscapedValueStartAndStop = escapedValueStartAndStop; EscapeValueEscapeChar = escapeValueEscapeChar; RowEnding = rowEndings; WriteBufferSizeHint = writeBufferSizeHint; ReadBufferSizeHint = readBufferSizeHint; switch (RowEnding) { case RowEndings.CarriageReturn: RowEndingMemory = CarriageReturn; break; case RowEndings.CarriageReturnLineFeed: RowEndingMemory = CarriageReturnLineFeed; break; case RowEndings.LineFeed: RowEndingMemory = LineFeed; break; default: // for cases like detecting headers, actually trying to write is NO GOOD... // but construction is fine RowEndingMemory = default; break; } ReadHeader = readHeader; WriteHeader = writeHeaders; WriteTrailingNewLine = writeTrailingNewLine; MemoryPool = memoryPool; CommentChar = commentChar; DynamicTypeConverter = null; }
internal void Init(IDynamicRowOwner owner, int rowNumber, int width, IDynamicTypeConverter converter, string[] names, MemoryPool <char> pool) { if (!IsDisposed) { Throw.InvalidOperationException("DynamicRow not in an uninitializable state"); } Owner = owner; RowNumber = rowNumber; Converter = converter; MemoryPool = pool; Width = width; Names = names; Generation++; }
public DynamicTypeFactory(DynamicModuleManager manager, Type itemType) { this.manager = manager; this.itemType = itemType; this.converter = new DynamicTypeConverter(); }
public void AddDynamicConverter(IDynamicTypeConverter dynamicConverter) { var typeTuple = Tuple.Create(dynamicConverter.SourceType, dynamicConverter.DestinationType); this.converterFactories.Add(typeTuple, dynamicConverter.ConverterFactory); }