From 2a1cd4fda8a4a8e649910d16b4dfa1ce7ae63543 Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Fri, 12 May 2023 09:24:40 +0800 Subject: *misc --- .../CsvHelper-master/docs/migration/v23/index.html | 295 +++++++++++++++++++++ 1 file changed, 295 insertions(+) create mode 100644 ThirdParty/CsvHelper-master/docs/migration/v23/index.html (limited to 'ThirdParty/CsvHelper-master/docs/migration/v23/index.html') diff --git a/ThirdParty/CsvHelper-master/docs/migration/v23/index.html b/ThirdParty/CsvHelper-master/docs/migration/v23/index.html new file mode 100644 index 0000000..e5be91c --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/migration/v23/index.html @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + + + + V23 | CsvHelper + + + + + + + + + + + + + + + + +
+
+
+
+

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.

+
// 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

+
// 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

+
// v22
+Map(m => m.Property).Convert(row => row.GetField(0));
+
+// v23
+Map(m => m.Property).Convert(args => args.Row.GetField(0));
+
+

ConvertToString

+
// v22
+Map(m => m.Property).Convert(value => value.ToString());
+
+// v23
+Map(m => m.Property).Convert(args => args.Value.ToString());
+
+

GetConstructor

+
// 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

+
// 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

+
// 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

+
// 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

+
// 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

+
// 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

+
// v22
+var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+{
+    ReferenceHeaderPrefix = (memberType, memberName) => $"{memberName}.",
+};
+
+// v23
+var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+{
+    ReferenceHeaderPrefix = args => $"{args.MemberName}.",
+};
+
+

ShouldQuote

+
// v22
+var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+{
+    ShouldQuote = (field, fieldType, row) => true,
+};
+
+// v23
+var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+{
+    ShouldQuote = args => true,
+};
+
+

ShouldSkipRecord

+
// 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

+
// v22
+var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+{
+	ShouldUseConstructorParameters = type => true;
+};
+
+// v23
+var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+{
+	ShouldUseConstructorParameters = args => true;
+};
+
+

Validate

+
// v22
+Map(m => m.Property).Validate(field => !string.IsNullOrEmpty(field));
+
+// v23
+Map(m => m.Property).Validate(args => !string.IsNullOrEmpty(args.Field));
+
+ +
+
+
+
+ +

+ + + + + + + + + + + -- cgit v1.1-26-g67d0