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/v20/index.html | 344 +++++++++++++++++++++ 1 file changed, 344 insertions(+) create mode 100644 ThirdParty/CsvHelper-master/docs/migration/v20/index.html (limited to 'ThirdParty/CsvHelper-master/docs/migration/v20') diff --git a/ThirdParty/CsvHelper-master/docs/migration/v20/index.html b/ThirdParty/CsvHelper-master/docs/migration/v20/index.html new file mode 100644 index 0000000..b797d5f --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/migration/v20/index.html @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + + + + + + V20 | CsvHelper + + + + + + + + + + + + + + + + +
+
+
+
+

Migrating from version 19 to 20

+

ConvertUsing

+

ConvertUsing was renamed to Convert.

+
// v19
+Map(m => m.Property).ConvertUsing(row => row.GetField<int>(0) + row.GetField<int>(1));
+
+// v20
+Map(m => m.Property).Convert(row => row.GetField<int>(0) + row.GetField<int>(1));
+
+

CsvConfiguration

+

All properties changed from get; set; to get; init;.

+
// v19
+var config = new CsvConfiguration(CultureInfo.InvariantCulture);
+config.Delimiter = ";";
+
+// v20
+var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+{
+	Delimiter = ";",
+}
+
+

CsvConfiguration changed from a class to a record.

+
// v19
+class MyConfig : CsvConfiguration {}
+
+// v20
+record MyConfig : CsvConfiguration {}
+
+

ShouldQuote

+

ShouldQuote now takes in IWriterRow instead of CsvContext.

+
// v19
+var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+{
+	ShouldQuote = (field, row) => true,
+};
+
+// v20
+var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+{
+	ShouldQuote = (field, context) => true,
+};
+
+

NewLine

+

Changed from enum NewLines to char?.

+
// v19
+var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+{
+	NewLine = NewLines.LF,
+};
+
+// v20
+var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+{
+	NewLine = '\n',
+};
+
+

NewLineString

+

This was removed. Any code referencing this should be deleted.

+

RegisterClassMap

+

This moved to CsvContext.

+
// v19
+csv.Configuration.RegisterClassMap<MyMap>();
+
+// v20
+csv.Context.RegisterClassMap<MyMap>();
+
+

UnregisterClassMap

+

This moved to CsvContext.

+
// v19
+csv.Configuration.UnregisterClassMap<MyMap>();
+
+// v20
+csv.Context.UnregisterClassMap<MyMap>();
+
+

AutoMap

+

This moved to CsvContext.

+
// v19
+csv.Configuration.AutoMap<MyType>();
+
+// v20
+csv.Context.AutoMap<MyType>();
+
+

IParserConfiguration

+

All setters removed.

+
// v19
+var config = new CsvConfiguration(CultureInfo.InvariantCulture);
+config.Delimiter = ";";
+
+// v20
+var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+{
+	Delimiter = ";",
+};
+
+
    +
  • Added bool CacheFields.
  • +
  • Added bool LeaveOpen.
  • +
  • Added char? NewLine.
  • +
  • Added ParserMode Mode.
  • +
  • Added char[] WhiteSpaceChars.
  • +
  • Removed bool IgnoreQuotes.
  • +
+

Any classes that implement IParserConfiguration will need these changes.

+

IReaderConfiguration

+

All setters removed.

+
// v19
+var config = new CsvConfiguration(CultureInfo.InvariantCulture);
+config.Delimiter = ";";
+
+// v20
+var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+{
+	Delimiter = ";",
+};
+
+
    +
  • Removed TypeConverterOptionsCache.
  • +
  • Removed TypeConverterCache.
  • +
  • Removed Maps.
  • +
  • Removed RegisterClassMap.
  • +
  • Removed UnregisterClassMap.
  • +
  • Removed AutoMap.
  • +
+

Any classes that implement IReaderConfiguration will need these changes.

+

ISerializerConfiguration

+

This interface was removed and it's properties were added to IWriteConfiguration.

+
// v19
+class MyConfig : ISerializerConfiguration {}
+
+// v20
+class MyConfig : IWriterConfiguration {}
+
+

IWriterConfiguration

+

All setters removed.

+
// v19
+var config = new CsvConfiguration(CultureInfo.InvariantCulture);
+config.Delimiter = ";";
+
+// v20
+var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+{
+	Delimiter = ";",
+};
+
+
    +
  • Removed QuoteString.
  • +
  • Removed TypeConverterCache.
  • +
  • Removed MemberTypes.
  • +
  • Removed Maps.
  • +
  • Removed RegisterClassMap.
  • +
  • Removed UnregisterClassMap.
  • +
  • Removed AutoMap.
  • +
+

Any classes that implement IWriterConfiguration will need these changes.

+

MemberMap

+

ConvertUsing renamed to Convert.

+
// v19
+Map(m => m.Property).ConvertUsing(row => row.Get(0));
+Map(m => m.Property).ConvertUsing(value => value?.ToString() ?? string.Empty);
+
+// v20
+Map(m => m.Property).Convert(row => row.Get(0));
+Map(m => m.Property).Convert(value => value?.ToString() ?? string.Empty);
+
+

CsvParser

+

string[] Read() changed to bool Read().

+
// v19
+string[] record;
+while ((record = parser.Read()) != null)
+{
+}
+
+// v20
+while (parser.Read())
+{
+	// Only get fields you need.
+	var field1 = parser[0];
+	var field2 = parser[1];
+
+	// Get all fields.
+	var record = parser.Record;
+}
+
+

Constructor paramter IFieldReader fieldReader removed from all constructors.

+
// v19
+var parser = new CsvParser(fieldReader);
+
+// v20
+var parser = new CsvParser();
+
+

CsvSerializer

+

Removed. Functionality moved into CsvWriter.

+

IFieldReader

+

Removed. Functionality moved into CsvParser.

+

IParser

+
    +
  • Added long ByteCount.
  • +
  • Added long CharCount.
  • +
  • Added int Count.
  • +
  • Added string this[int index].
  • +
  • Added string[] Record.
  • +
  • Added string RawRecord.
  • +
  • Added int Row.
  • +
  • Added int RawRow.
  • +
  • Changed string[] Read to bool Read.
  • +
  • Changed Task<string[]> ReadAsync to Task<bool> ReadAsync.
  • +
+

Any classes that implement IParser will need these changes.

+

IReader

+
    +
  • Removed ICsvParser Parser.
  • +
+

Any classes that implement IReader will need these changes.

+

IReaderRow

+
    +
  • Added int ColumnCount.
  • +
  • Added int CurrentIndex.
  • +
  • Added string[] HeaderRecord.
  • +
  • Added IParser Parser.
  • +
+

Any classes that implement IReaderRow will need these changes.

+

ISerializer

+

Removed. Functionality moved into IWriter.

+

IWriterRow

+
    +
  • Added string[] HeaderRecord.
  • +
  • Added int Row.
  • +
  • Added int Index.
  • +
+

RecordBuilder

+

Removed. Functionality moved into CsvWriter.

+

Caches

+

enum Caches was removed. Modifying internal caches is not supported anymore. +Any code referencing this should be removed.

+

ReadingContext/WritingContext

+

ReadingContext and WritingContext was merged into a single CsvContext. +Anywhere either of these was used should change to CsvContext.

+

Func/Action

+

Any place a Func or Action was used now has a dedicated delegate. +This should only affect classes that are inheriting ClassMap +or CsvConfiguration.

+

CsvFieldReader

+

Class removed. Code was wrapped into CsvParser.

+ +
+
+
+
+ +

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