Breaking changes

CsvConfigurationrecord1 breaking1 changed

CultureInfoBreaking

The signature changed.

Before
public virtual CultureInfo CultureInfo { get; protected set; }
After
public virtual CultureInfo CultureInfo { get; protected internal set; }

Deprecated

These still work, but will be removed in a later release.

CsvConfigurationrecord1 deprecated

CsvConfiguration(CultureInfo, Type)

This constructor is deprecated and will be removed in the next major release. Use CsvConfiguration(CultureInfo) instead.

Other changes

Not breaking, but worth a look.

CsvHelper

CsvWriterclass1 changed

CsvWriternetstandard2.0, net47

The type now implements IAsyncDisposable.

Before
public class CsvWriter : IWriter, IWriterRow, IDisposable
After
public class CsvWriter : IWriter, IWriterRow, IDisposable, IAsyncDisposable
IWriterinterface1 changed

IWriternetstandard2.0, net47

The type now implements IAsyncDisposable.

Before
public interface IWriter : IWriterRow, IDisposable
After
public interface IWriter : IWriterRow, IDisposable, IAsyncDisposable

CsvHelper.Configuration.Attributes

AllowCommentsAttributeclass1 changed

A default parameter value changed: callers that omit the argument get the new value once they recompile.

AllowCommentsAttribute(bool)
CacheFieldsAttributeclass1 changed

A default parameter value changed: callers that omit the argument get the new value once they recompile.

CacheFieldsAttribute(bool)
CountBytesAttributeclass1 changed

A default parameter value changed: callers that omit the argument get the new value once they recompile.

CountBytesAttribute(bool)
CultureInfoAttributeclass2 changed

CultureInfoAttribute

The type now implements IClassMapper.

Before
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
public class CultureInfoAttribute : Attribute, IMemberMapper, IParameterMapper
After
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
public class CultureInfoAttribute : Attribute, IClassMapper, IMemberMapper, IParameterMapper

Parameter culture is now named name (this only affects calls that name the argument).

CultureInfoAttribute(string)
DetectColumnCountChangesAttributeclass1 changed

A default parameter value changed: callers that omit the argument get the new value once they recompile.

DetectColumnCountChangesAttribute(bool)
DetectDelimiterAttributeclass1 changed

A default parameter value changed: callers that omit the argument get the new value once they recompile.

DetectDelimiterAttribute(bool)
EncodingAttributeclass1 changed

Parameter encoding is now named name (this only affects calls that name the argument).

EncodingAttribute(string)
ExceptionMessagesContainRawDataAttributeclass1 changed

A default parameter value changed: callers that omit the argument get the new value once they recompile.

ExceptionMessagesContainRawDataAttribute(bool)
HasHeaderRecordAttributeclass1 changed

A default parameter value changed: callers that omit the argument get the new value once they recompile.

HasHeaderRecordAttribute(bool)
IgnoreBlankLinesAttributeclass1 changed

A default parameter value changed: callers that omit the argument get the new value once they recompile.

IgnoreBlankLinesAttribute(bool)
IgnoreReferencesAttributeclass1 changed

A default parameter value changed: callers that omit the argument get the new value once they recompile.

IgnoreReferencesAttribute(bool)
IncludePrivateMembersAttributeclass1 changed

A default parameter value changed: callers that omit the argument get the new value once they recompile.

IncludePrivateMembersAttribute(bool)
InjectionCharactersAttributeclass1 changed

InjectionCharactersAttribute

The declaration changed.

Before
public class InjectionCharactersAttribute : Attribute, IClassMapper
After
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public class InjectionCharactersAttribute : Attribute, IClassMapper
LineBreakInQuotedFieldIsBadDataAttributeclass1 changed

A default parameter value changed: callers that omit the argument get the new value once they recompile.

LineBreakInQuotedFieldIsBadDataAttribute(bool)
UseNewObjectForNullReferenceMembersAttributeclass1 changed

A default parameter value changed: callers that omit the argument get the new value once they recompile.

UseNewObjectForNullReferenceMembersAttribute(bool)