Migration guide
Migrating to v30.1.0
Moving to v30.1.0 from v30.0.3. Changelog.
Breaking changes
CsvConfigurationrecord1 breaking1 changed
CultureInfoBreaking
The signature changed.
public virtual CultureInfo CultureInfo { get; protected set; }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.
public class CsvWriter : IWriter, IWriterRow, IDisposablepublic class CsvWriter : IWriter, IWriterRow, IDisposable, IAsyncDisposableIWriterinterface1 changed
IWriternetstandard2.0, net47
The type now implements IAsyncDisposable.
public interface IWriter : IWriterRow, IDisposablepublic interface IWriter : IWriterRow, IDisposable, IAsyncDisposableCsvHelper.Configuration.Attributes
AllowCommentsAttributeclass1 changed
A default parameter value changed: callers that omit the argument get the new value once they recompile.
CacheFieldsAttributeclass1 changed
A default parameter value changed: callers that omit the argument get the new value once they recompile.
CountBytesAttributeclass1 changed
A default parameter value changed: callers that omit the argument get the new value once they recompile.
CultureInfoAttributeclass2 changed
CultureInfoAttribute
The type now implements IClassMapper.
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
public class CultureInfoAttribute : Attribute, IMemberMapper, IParameterMapper[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
public class CultureInfoAttribute : Attribute, IClassMapper, IMemberMapper, IParameterMapperParameter culture is now named name (this only affects calls that name the argument).
DetectColumnCountChangesAttributeclass1 changed
A default parameter value changed: callers that omit the argument get the new value once they recompile.
DetectDelimiterAttributeclass1 changed
A default parameter value changed: callers that omit the argument get the new value once they recompile.
EncodingAttributeclass1 changed
Parameter encoding is now named name (this only affects calls that name the argument).
ExceptionMessagesContainRawDataAttributeclass1 changed
A default parameter value changed: callers that omit the argument get the new value once they recompile.
HasHeaderRecordAttributeclass1 changed
A default parameter value changed: callers that omit the argument get the new value once they recompile.
IgnoreBlankLinesAttributeclass1 changed
A default parameter value changed: callers that omit the argument get the new value once they recompile.
IgnoreReferencesAttributeclass1 changed
A default parameter value changed: callers that omit the argument get the new value once they recompile.
IncludePrivateMembersAttributeclass1 changed
A default parameter value changed: callers that omit the argument get the new value once they recompile.
InjectionCharactersAttributeclass1 changed
InjectionCharactersAttribute
The declaration changed.
public class InjectionCharactersAttribute : Attribute, IClassMapper[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public class InjectionCharactersAttribute : Attribute, IClassMapperLineBreakInQuotedFieldIsBadDataAttributeclass1 changed
A default parameter value changed: callers that omit the argument get the new value once they recompile.
UseNewObjectForNullReferenceMembersAttributeclass1 changed
A default parameter value changed: callers that omit the argument get the new value once they recompile.