Changelog
v3.0.0
Released October 9, 2017. Previous release: v2.16.3. Migration guide.
API
The API of v2.16.3 could not be built: src/CsvHelper/CsvHelper.csproj does not exist in v2.16.3.
Commits
- cc182a0f Updated version to 3.0.0.
- c0bf0667 Renamed Factory to Cache.
- c37b29b5 Renamed callbacks to remove the word "callback".
- 23d5a2da Adde ability to change injection escape character.
- 0b59a6db Updated xml comments.
- 65274e57 Version bump.
- a7fee65d Changed contexts to interfaces.
- 28a2e3f5 Updated comments.
- 6f8a6d5f Renamed injection code to remove Excel from naming.
- 43de8d3a Added license headers.
- 434e6ca6 Added Excel injection sanitization.
- c08cdaa2 Fixed issues with parsing when TrimOptions are enabled but there is no spaces to trim.
- eb50ebca Moved expression logic into separate classes.
- 7e97de68 Version bump.
- 0ad710e6 Enumerate records and fill existing object.
- e5a01dc1 Version bump.
- cc0a439e Added net45 build target.
- ed975f2c Fixed issue with writing not working when types and boxed types are written together.
- efefbf48 Fixed issue where check for anonymous type could return true when public.
- 9e461c57 Changed Invoke method call to parens.
- 38a82dbc Changed WriteRecords argument to generic to elimited boxing and unboxing.
- a11833a6 Changed DynamicInvoke to Invoke in the writer for better performance.
- cdfee9f2 Removed all HasFlag calls for performance reasons.
- 59c3635e Moved change from CsvFieldReader to it's T4 template.
- 9dd1bce8 Version bump.
- 29b8a9a5 Fixed issues with constants other than strings not working when writing.
- 13dbb61c Changed some configuration flags to callback functions to let the user handle the functionality.
- f9e5f10b Removed TypeConverterFactory.Current so only the Configuration.TypeConverterFactory is used.
- 78a0338d Updated the T4 templates with the changes that went into the generated files.
- 22ceba10 Fixed spelling error in comment.
- 538307ce Fixed header validation to ignore members that have a mapping ignore specified.
- 080138aa Added check for index < 0 on GetField.
- d86694cf Fixed header validation to work with private setters.
- 4eca8fe0 Version bump.
- 98f3b8b9 Renamed property and field names to member.
- bca55ab5 Changed ThrowOnBadHeader config to true by default. Added an exception message explaining how to turn it off.
- 77ab20c3 Fixing accidental file commit.
- f427b8d0 Fixed issue with validating the header and constructor parameters.
- 4e071512 Removed Csv from class names where it wasn't appropriate.
- 4739d45c Added unit tests for multiple maps for a single property.
- ccefc1d7 Header validation.
- 03c07cd0 Validate field mapping.
- b2c1f2bd Added trim options to trim in parser and removed trim from reader.
- 1165e691 Version bump.
- db594543 Async read/write.
- aa0b66fe Renamed API interfaces and methods. Changed fluent paths a little.
- 700713e6 Got project building and unit tests running after the merge.
- 67d68954 Fixed issue with constant not working with null.
- 25198af3 Version bump.
- 804fdb51 Changed anonymous type mapping to work with any constructor.
- d20cc2a5 Reading anonymous types.
- 70d8b89f Removed unused # defines.
- 9fd38305 Added unit test.
- 7771a658 Added SerializableAttribute to exception classes.
- aaeae9a0 Upgraded project to core 2.0.
- ba6ee855 Fixed issue with getting the class map from the collection. It was only getting the current and not looking up the tree.
- 0b151633 Fixed issue with test that fails when all tests are ran together.
- 166bf16d Removed statics from TypeConverterOptionsFactory.
- 912d3d17 Made TypeConverterFactory not a static.
- 232dffeb Updated comments.
- 5b518a95 Added a Flush method to the writer so NextRecord just writes a line ending. This will allow users to no write a line ending if they want.
- 49f0afd6 Added comment to clarify the Ignore() functionality. #613
- 603dc8ac Fixed private properties not being able to be set.
- 9b15bbdd Threading issue. #713
- f8e026de Made methods ReIndex and GetMaxIndex on CsvClassMap public.
- bb3bd5dd Changed default delimiter to , instead of ListSeparator. This is a CommaSV library after all. #718
- e60f7ae6 Comment update.
- 65f06208 fix identical conditional expressions change recursion with iteration
- 9fe0bca6 Bumped version. Fixed comment issues.
- 8afd0cd6 Created object resolver so interfaces can be mapped to and IoC containers can be plugged in.
- e8d56c7a Added multiple formats instead of a single format.
- 67969164 Removed default boolean values of yes, y, no, n since it's not a standard boolean. true, false, 1, 0 still work.
- 3a2daa1b Removed default null values since there is no common standard that could be found.
- 4842ef07 Renamed interfaces to remove Csv from them.
- 666288ad When writing with auto mapping skip enumerable properties when HasHeaderRecord = true.
- e40570fb Convert using implementation for writing.
- 0115d665 Changed BadDataCallback to take in a ReadingContext instead of a string.
- 91ffd21c Added reading/writing contexts to exceptions.
- 8484dfcf Moved reading/writing state data into a common context object that is shared.
- 7cce432d Adding ConverToString tests
- 4ee4a0a9 Adding dashes support. Adding tests.
- c7b23ac6 Organized project file. Using project file for all build info instead of some info being in AssemblyInfo.
- 16e456a0 Removed un-needed helper class.
- de9333be Fixed issue with automapping not mapping references correctly in some nested situations because it thought it was a circular dependency when it wasn't.
- 0b91aca0 Added unit test for TrimFields config.
- a30909ef Allow default value to be a string that is converted. Feature came from #499 from GrantHoffman.
- 14ecb3f2 Removed un-needed type checking in property map configuration.
- 02f863d2 Added unit test to cover cover change.
- 0e6fe098 Finishing up options checking and adding support for base64 format
- 37cb63f1 Updated version.
- b74a2f95 Updated license headers.
- d46aa5ef Speed improvements when using WriteField.
- c327beaf Speed improvements when using GetField.
- 960a3c8c Adding locking in ReflectionHelper.CreateInstance for the static delegate cache.
- 7fe55e6c Changed reflection calls to ConvertToString to get the method for ITypeConverter instead of the actual converter. This is so the overriden implementation will be used instead of a random method with the same name.
- a1a6c0cf Fixed bug when mapping a constant then mapping another property after will throw an exception.
- 1e306db6 Added locking to factory to make it thread safe.
- 6bd89b0e Ability to change required quote characters.
- 078ce217 Added CsvProperMap<T> to allow for compile time type checking on mappings.
- 3cb57e47 fixes quote handling (IsFieldBad): mark unquoted fields with quote chars as bad only when cfg.IgnoreQuotes is false
- 519fdb62 Updated version.
- 797753f5 Auto mapping with user defined struct.
- 67f5bd94 Adding ByteArrayConverter
- 385af805 Simplified reloading of FieldReader buffer.
- c1a138ce Updated version. Fixed nuget push script.
- 6a2772f5 Cleanup.
- 51555a48 Cleanup.
- 012db7e9 Fixing Line Ending Spanning Buffer
- acd0d8aa Removed Excel specific code. The malformed fallback behavior that mimics Excel is still there.
- 6209933c Changed ReadHeader to not set CurrentRecord to null.
- 74c0b9ca Tiny grammar fix to README
- fca130ec Updated nuget scripts. Push may not be working correctly yet.
- ab1bdf34 Added CslCompliant back in.
- f03fe2da Removed un-needed info.
- cb9f9f51 Version bump.
- 8c261620 Removed AllowPartiallyTrustedCallers.
- ebe85e60 Version bump.
- 091b0f9b Removed redundant CheckHasBeenRead() call.
- f68d48db Fixed project version number.
- 7ee6b4d8 Updated nuget push script.
- 2963e6c8 Only supporting netstandard1.3 now. Updated to VS2017.
- 0dadb552 Fix up whitespace <-> tab conversion issue
- 616c6a9a Fixed issue of skipping a character if a line ending was within a quoted field
- ec32a436 Changed default delmiter to current cultures list separator.
- c8c7e049 Removed un-used code.
- c0f6f77e Changing names to prepare to create PropertyMapBuilder
- 6292304a Fixing post-merge issues.
- 339996aa Added tests for TypeConverterOptionsFactory using different cultures.
- 1864343a Cleanup.
- 71abe8a0 Allow partially trusted callers for scenarios such as using this assembly within SQL CLR.
- 448cb71d Added CLSCompliant( true ) attribute to assembly.
- 17a0dd7c Fixed issue with type converter options set in factory not working with auto mapping or explicit map.
- 4e8beca8 Allow mapping to fields. By default, only properties will work when auto mapping. You can change a config value to choose properties, fields, or both.
- 4a5eb5c2 Adding ClassMapBuilder.
- 7ff98447 Allow resuming reading of more data is written to the steram.
- 78b193ca Added ability for ConstructUsing to use initializers.
- e4c76386 Made ConstructUsing work with Reference maps.
- 941fac99 Changed DateTime and DateTimeOffset converters to not work whent the string is spaces to match what all the other converters do. The .NET Framework DateTime and DateTimeOffset converters will convert a string of all spaces into MinValue, so we are diverging from that a little.
- abe1a6fe Cleaned up warnings. Bumped version.
- 179c1a85 When comments are on and a field is being written that is the first field in the record and the first char is a comment char, quote the field because it's not a comment.
- 5e96918b Moved detection of column count changes into the reader. The parser shouldn't care and should just return whatever data it finds.
- 307a440a Cleanup.
- b6be3950 Added interfaces for configuration so you can tell what options are availabe in your current context.
- 0e21c881 Removed header matching manipulation configuration IsHeaderCaseSensitive, IgnoreHeaderWhiteSpace, and TrimHeaders and added a config for PrepareHeaderForMatch that is a function. Both the header field name and the property name are ran through this method before matching against eachother.
- 57a8af01 Fixed but where ignoring header whitespace wouldn't work if a named property had the same whitespace in it.
- db3547bc Exposed the underlying TextReader as a property.
- cca123a2 Throw exception with useful message when a type is created without a public parameterless constructor. Specifically mappings in this case.
- 69c0df10 Added ability to map the same property more than once.
- ca1ebec6 Changed reading exception callback to send a CsvHelperException.
- 18ac5f16 Added unit test for empty TextReader.
- 14a60c93 Ability to read more than 1 header row. This helps with having several CSV files in one file.
- 640fe242 Added ability to specify values that resolve to null when reading.
- ba3bd1c0 Changed config setting name from IgnorePrivateAccessor to IncludePrivateProperties to be more clear on intention.
- 7a006772 Added ability to write fields not mapped to a property.
- 6c6e41e5 Update comments for constant property map.
- 86380991 Added ability to specify a constant value for a mapped property. When reading, the same value gets set for every record for the property. When writing, the same value gets written for every record for the property.
- fd2b8034 Forgot this file in the last commit.
- 8904f512 Created a separate writing action for ExpandoObject due to an issue in ExpandoClass where it thinks two aren't equal when they have the same property keys.
- e885ef69 Fixed issue with dynamic expression getting stuck in an infinite loop.
- c5e7ba10 Changed enumerable converters to use header value if one is set. Updated exceptions to throw a more specific exception than CsvHelperException.
- d7ad9e72 Fixes issue #575 where setting a Configuration.ShouldSkipRecord method always overrides the Configuration.SkipEmptyRecords setting.
- c6f74719 Version bump.
- c08d5aa2 Fixed issue with CsvClassMapCollection[type] choosing the wrong type when multiple types on the inheritance tree are mapped.
- 892ea4b1 Ability to write comments. Changed WriteRecord to not call NextRecord. This allows the possibility to write fields or records after a record has been written. This also matches the reader no calling read on GetRecord.
- 823bd802 Speed up mappings that use ConvertUsing by caching the named indexes.
- 25f8dbde Cleaned up build compatibility.
- 7223ece9 Add Gitter badge
- d082cc9e Speed improvement for CsvSerializer.
- b1c871c5 Added properties to CsvHelperException and removed the string data.
- 5f5b69ad Added leaveOpen flag to constructors to not dispose of underlying TextReader and TextWriter.
- a75ead6c Made TypeConverterOptionsFactory an instance inside CsvConfiguration instead of static.
- 3a8fa4f9 Parser speed improvements.
- 139efdb4 Updated version.
- d17cbd25 Removed CanConvertTo and CanConvertFrom from the type converters because there is no need for them.
- 5ec6d965 Added dictionary type converters.
- f9b49173 Removed debug type from build.
- aae105a0 Updated pushed to require it be done via the command line.
- efbec2ea Updated version to 3.0.0-beta3
- cacf28e3 Ability to map child properties so multiple maps aren't needed.
- 9007ffff Ability to write IDynamicMetaObjectProvider objects. DynamicObject and ExpandoObject are the 2 most common.
- 202cdffe Fixed all warnings.
- a2a8798d Throw an exception if the return type from a ConvertUsing expression isn't assignable to the property type.
- 30fd9665 Allow null fields to be written.
- 48dde9a7 Added ability to read and write IEnumerable properties.
- cd27d495 Moved code that isn't row level out of ICsvReaderRow and into ICsvReader.
- 2f4e7eea Fixed unit test that changed because of logic changes. When reading the header, the current record is now null instead of throwing an exception.
- cd57fa73 Removed obsolete code.
- 2206c2d3 Starting 3.0 work. Bumping beta version.
- f0479d87 #548 remove HasBeenRead checks on Row and CurrentRecord
- 09618728 make Reader.HasBeenRead publically gettable