diff options
Diffstat (limited to 'ThirdParty/CsvHelper-master/src/CsvHelper.Website/input/migration/v23/index.md')
-rw-r--r-- | ThirdParty/CsvHelper-master/src/CsvHelper.Website/input/migration/v23/index.md | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper.Website/input/migration/v23/index.md b/ThirdParty/CsvHelper-master/src/CsvHelper.Website/input/migration/v23/index.md new file mode 100644 index 0000000..e2fed33 --- /dev/null +++ b/ThirdParty/CsvHelper-master/src/CsvHelper.Website/input/migration/v23/index.md @@ -0,0 +1,228 @@ +# Migrating from version 22 to 23 + +## CsvConfiguration + +All the constructor parameters were removed in favor of using +property setters. Apply this change to any of the options. + +```cs +// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture, delimiter = ";"); + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + Delimiter = ";", +}; +``` + +## Delegates + +All delegates now take in a single struct argument. + +**BadDataFound** +```cs +// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + BadDataFound = (field, context) => + { + Console.WriteLine($"field: {field}"); + Console.WriteLine($"context: {context}"); + }, +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + BadDataFound = args => + { + Console.WriteLine($"field: {args.Field}"); + Console.WriteLine($"context: {args.Context}"); + }, +}; +``` + +**ConvertFromString** +```cs +// v22 +Map(m => m.Property).Convert(row => row.GetField(0)); + +// v23 +Map(m => m.Property).Convert(args => args.Row.GetField(0)); +``` + +**ConvertToString** +```cs +// v22 +Map(m => m.Property).Convert(value => value.ToString()); + +// v23 +Map(m => m.Property).Convert(args => args.Value.ToString()); +``` + +**GetConstructor** +```cs +// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + GetConstructor = classType => classType.GetConstructors().First(), +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + GetConstructor = args => args.ClassType.GetConstructors().First(), +}; +``` + +**GetDynamicPropertyName** +```cs +// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + GetDynamicPropertyName = (fieldIndex, context) => $"Field{fieldIndex}"; +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + GetDynamicPropertyName = args => $"Field{args.FieldIndex}", +}; +``` + +**HeaderValidated** +```cs +// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + HeaderValidated = (invalidHeaders, context) => Console.WriteLine($"Invalid headers count: {invalidHeaders.Count}"), +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + HeaderValidated = args => Console.WriteLine($"Invalid headers count: {args.InvalidHeaders.Count}"), +}; +``` + +**MissingFieldFound** +```cs +// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + MissingFieldFound = (headerNames, index, context) => Console.WriteLine($"Missing field: {headerNames[0]}"), +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + MissingFieldFound = args => Console.WriteLine($"Missing field: {args.HeaderNames[0]}"), +}; +``` + +**PrepareHeaderForMatch** +```cs +// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + PrepareHeaderForMatch = (header, fieldIndex) => header.ToLower(), +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + PrepareHeaderForMatch = args => args.Header.ToLower(), +}; +``` + +**ReadingExceptionOccurred** +```cs +// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ReadingExceptionOccurred = exception => + { + Console.WriteLine(exception.Message); + throw args.Exception; + }, +}; +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ReadingExceptionOccurred = args => + { + Console.WriteLine(args.Exception.Message); + throw args.Exception; + }, +}; +``` + +**ReferenceHeaderPrefix** +```cs +// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ReferenceHeaderPrefix = (memberType, memberName) => $"{memberName}.", +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ReferenceHeaderPrefix = args => $"{args.MemberName}.", +}; +``` + +**ShouldQuote** +```cs +// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ShouldQuote = (field, fieldType, row) => true, +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ShouldQuote = args => true, +}; +``` + +**ShouldSkipRecord** +```cs +// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ShouldSkipRecord = (records) => record.Length == 0, +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ShouldSkipRecord = args => args.Record.Length == 0, +}; +``` + +**ShouldUseConstructorParameters** +```cs +// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ShouldUseConstructorParameters = type => true; +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ShouldUseConstructorParameters = args => true; +}; +``` + +**Validate** +```cs +// v22 +Map(m => m.Property).Validate(field => !string.IsNullOrEmpty(field)); + +// v23 +Map(m => m.Property).Validate(args => !string.IsNullOrEmpty(args.Field)); +``` |